package org.csu.idl.xtext.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.csu.idl.xtext.services.IDLGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
public class InternalIDLParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_STRING", "RULE_HEX_LITERAL", "RULE_WIDE_STRING_LITERAL", "RULE_FIXED_PT_LITERAL", "RULE_FLOATING_PT_LITERAL", "RULE_BOOLEAN_LITERAL", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'float'", "'double'", "'short'", "'long'", "'char'", "'wchar'", "'string'", "'wstring'", "'boolean'", "'octet'", "'any'", "'Object'", "'void'", "';'", "'abstract'", "'local'", "'>>'", "'<<'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "'in'", "'out'", "'inout'", "'#include'", "'module'", "'{'", "'}'", "'interface'", "':'", "','", "'('", "')'", "'raises'", "'context'", "'attribute'", "'getraises'", "'setraises'", "'exception'", "'native'", "'typedef'", "'['", "']'", "'struct'", "'union'", "'switch'", "'case'", "'enum'", "'const'", "'='", "'sequence'", "'<'", "'>'", "'fixed'", "'unsigned'", "'oneway'", "'readonly'", "'default'", "'|'", "'^'", "'&'"
    };
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int RULE_ID=11;
    public static final int T__66=66;
    public static final int T__67=67;
    public static final int RULE_BOOLEAN_LITERAL=10;
    public static final int T__64=64;
    public static final int T__29=29;
    public static final int T__65=65;
    public static final int T__28=28;
    public static final int T__62=62;
    public static final int T__27=27;
    public static final int T__63=63;
    public static final int T__26=26;
    public static final int RULE_WIDE_STRING_LITERAL=7;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=15;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int T__61=61;
    public static final int T__60=60;
    public static final int EOF=-1;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__19=19;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int RULE_FLOATING_PT_LITERAL=9;
    public static final int T__16=16;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__18=18;
    public static final int T__53=53;
    public static final int T__17=17;
    public static final int T__54=54;
    public static final int T__59=59;
    public static final int RULE_HEX_LITERAL=6;
    public static final int RULE_INT=4;
    public static final int T__50=50;
    public static final int T__42=42;
    public static final int RULE_FIXED_PT_LITERAL=8;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int RULE_SL_COMMENT=13;
    public static final int RULE_ML_COMMENT=12;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int RULE_STRING=5;
    public static final int T__32=32;
    public static final int T__71=71;
    public static final int T__33=33;
    public static final int T__72=72;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__70=70;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=14;
    public static final int T__76=76;
    public static final int T__75=75;
    public static final int T__74=74;
    public static final int T__73=73;
    public static final int T__79=79;
    public static final int T__78=78;
    public static final int T__77=77;

    // delegates
    // delegators


        public InternalIDLParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalIDLParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalIDLParser.tokenNames; }
    public String getGrammarFileName() { return "../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g"; }


     
     	private IDLGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(IDLGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRulespecification"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:61:1: entryRulespecification : rulespecification EOF ;
    public final void entryRulespecification() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:62:1: ( rulespecification EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:63:1: rulespecification EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSpecificationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulespecification_in_entryRulespecification67);
            rulespecification();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSpecificationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulespecification74); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulespecification"


    // $ANTLR start "rulespecification"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:70:1: rulespecification : ( ( rule__Specification__Group__0 ) ) ;
    public final void rulespecification() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:74:2: ( ( ( rule__Specification__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:75:1: ( ( rule__Specification__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:75:1: ( ( rule__Specification__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:76:1: ( rule__Specification__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:77:1: ( rule__Specification__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:77:2: rule__Specification__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__0_in_rulespecification100);
            rule__Specification__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulespecification"


    // $ANTLR start "entryRuleinclude_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:89:1: entryRuleinclude_decl : ruleinclude_decl EOF ;
    public final void entryRuleinclude_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:90:1: ( ruleinclude_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:91:1: ruleinclude_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInclude_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinclude_decl_in_entryRuleinclude_decl127);
            ruleinclude_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInclude_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinclude_decl134); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleinclude_decl"


    // $ANTLR start "ruleinclude_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:98:1: ruleinclude_decl : ( ( rule__Include_decl__Group__0 ) ) ;
    public final void ruleinclude_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:102:2: ( ( ( rule__Include_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:103:1: ( ( rule__Include_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:103:1: ( ( rule__Include_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:104:1: ( rule__Include_decl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:105:1: ( rule__Include_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:105:2: rule__Include_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__0_in_ruleinclude_decl160);
            rule__Include_decl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleinclude_decl"


    // $ANTLR start "entryRuledefinition"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:117:1: entryRuledefinition : ruledefinition EOF ;
    public final void entryRuledefinition() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:118:1: ( ruledefinition EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:119:1: ruledefinition EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruledefinition_in_entryRuledefinition187);
            ruledefinition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuledefinition194); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuledefinition"


    // $ANTLR start "ruledefinition"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:126:1: ruledefinition : ( ( rule__Definition__Alternatives ) ) ;
    public final void ruledefinition() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:130:2: ( ( ( rule__Definition__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:131:1: ( ( rule__Definition__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:131:1: ( ( rule__Definition__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:132:1: ( rule__Definition__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:133:1: ( rule__Definition__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:133:2: rule__Definition__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Alternatives_in_ruledefinition220);
            rule__Definition__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruledefinition"


    // $ANTLR start "entryRulemodule"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:145:1: entryRulemodule : rulemodule EOF ;
    public final void entryRulemodule() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:146:1: ( rulemodule EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:147:1: rulemodule EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemodule_in_entryRulemodule247);
            rulemodule();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulemodule254); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulemodule"


    // $ANTLR start "rulemodule"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:154:1: rulemodule : ( ( rule__Module__Group__0 ) ) ;
    public final void rulemodule() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:158:2: ( ( ( rule__Module__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:159:1: ( ( rule__Module__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:159:1: ( ( rule__Module__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:160:1: ( rule__Module__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:161:1: ( rule__Module__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:161:2: rule__Module__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__0_in_rulemodule280);
            rule__Module__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulemodule"


    // $ANTLR start "entryRuleinterface_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:173:1: entryRuleinterface_decl : ruleinterface_decl EOF ;
    public final void entryRuleinterface_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:174:1: ( ruleinterface_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:175:1: ruleinterface_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_decl_in_entryRuleinterface_decl307);
            ruleinterface_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinterface_decl314); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleinterface_decl"


    // $ANTLR start "ruleinterface_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:182:1: ruleinterface_decl : ( ( rule__Interface_decl__Group__0 ) ) ;
    public final void ruleinterface_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:186:2: ( ( ( rule__Interface_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:187:1: ( ( rule__Interface_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:187:1: ( ( rule__Interface_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:188:1: ( rule__Interface_decl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:189:1: ( rule__Interface_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:189:2: rule__Interface_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__0_in_ruleinterface_decl340);
            rule__Interface_decl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleinterface_decl"


    // $ANTLR start "entryRuleinterface_fwd"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:201:1: entryRuleinterface_fwd : ruleinterface_fwd EOF ;
    public final void entryRuleinterface_fwd() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:202:1: ( ruleinterface_fwd EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:203:1: ruleinterface_fwd EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_fwdRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_fwd_in_entryRuleinterface_fwd367);
            ruleinterface_fwd();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_fwdRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinterface_fwd374); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleinterface_fwd"


    // $ANTLR start "ruleinterface_fwd"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:210:1: ruleinterface_fwd : ( ( rule__Interface_fwd__Group__0 ) ) ;
    public final void ruleinterface_fwd() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:214:2: ( ( ( rule__Interface_fwd__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:215:1: ( ( rule__Interface_fwd__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:215:1: ( ( rule__Interface_fwd__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:216:1: ( rule__Interface_fwd__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:217:1: ( rule__Interface_fwd__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:217:2: rule__Interface_fwd__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__0_in_ruleinterface_fwd400);
            rule__Interface_fwd__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleinterface_fwd"


    // $ANTLR start "entryRuleexport"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:229:1: entryRuleexport : ruleexport EOF ;
    public final void entryRuleexport() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:230:1: ( ruleexport EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:231:1: ruleexport EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexport_in_entryRuleexport427);
            ruleexport();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleexport434); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleexport"


    // $ANTLR start "ruleexport"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:238:1: ruleexport : ( ( rule__Export__Alternatives ) ) ;
    public final void ruleexport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:242:2: ( ( ( rule__Export__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:243:1: ( ( rule__Export__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:243:1: ( ( rule__Export__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:244:1: ( rule__Export__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:245:1: ( rule__Export__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:245:2: rule__Export__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Alternatives_in_ruleexport460);
            rule__Export__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleexport"


    // $ANTLR start "entryRuleop_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:257:1: entryRuleop_decl : ruleop_decl EOF ;
    public final void entryRuleop_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:258:1: ( ruleop_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:259:1: ruleop_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleop_decl_in_entryRuleop_decl487);
            ruleop_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleop_decl494); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleop_decl"


    // $ANTLR start "ruleop_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:266:1: ruleop_decl : ( ( rule__Op_decl__Group__0 ) ) ;
    public final void ruleop_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:270:2: ( ( ( rule__Op_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:271:1: ( ( rule__Op_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:271:1: ( ( rule__Op_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:272:1: ( rule__Op_decl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:273:1: ( rule__Op_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:273:2: rule__Op_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__0_in_ruleop_decl520);
            rule__Op_decl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleop_decl"


    // $ANTLR start "entryRuleop_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:285:1: entryRuleop_type_spec : ruleop_type_spec EOF ;
    public final void entryRuleop_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:286:1: ( ruleop_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:287:1: ruleop_type_spec EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleop_type_spec_in_entryRuleop_type_spec547);
            ruleop_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleop_type_spec554); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleop_type_spec"


    // $ANTLR start "ruleop_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:294:1: ruleop_type_spec : ( ( rule__Op_type_spec__Alternatives ) ) ;
    public final void ruleop_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:298:2: ( ( ( rule__Op_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:299:1: ( ( rule__Op_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:299:1: ( ( rule__Op_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:300:1: ( rule__Op_type_spec__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:301:1: ( rule__Op_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:301:2: rule__Op_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Alternatives_in_ruleop_type_spec580);
            rule__Op_type_spec__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleop_type_spec"


    // $ANTLR start "entryRuleparam_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:313:1: entryRuleparam_decl : ruleparam_decl EOF ;
    public final void entryRuleparam_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:314:1: ( ruleparam_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:315:1: ruleparam_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleparam_decl_in_entryRuleparam_decl607);
            ruleparam_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleparam_decl614); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleparam_decl"


    // $ANTLR start "ruleparam_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:322:1: ruleparam_decl : ( ( rule__Param_decl__Group__0 ) ) ;
    public final void ruleparam_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:326:2: ( ( ( rule__Param_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:327:1: ( ( rule__Param_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:327:1: ( ( rule__Param_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:328:1: ( rule__Param_decl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:329:1: ( rule__Param_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:329:2: rule__Param_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__0_in_ruleparam_decl640);
            rule__Param_decl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleparam_decl"


    // $ANTLR start "entryRuleattr_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:341:1: entryRuleattr_decl : ruleattr_decl EOF ;
    public final void entryRuleattr_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:342:1: ( ruleattr_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:343:1: ruleattr_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleattr_decl_in_entryRuleattr_decl667);
            ruleattr_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleattr_decl674); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleattr_decl"


    // $ANTLR start "ruleattr_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:350:1: ruleattr_decl : ( ( rule__Attr_decl__Alternatives ) ) ;
    public final void ruleattr_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:354:2: ( ( ( rule__Attr_decl__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:355:1: ( ( rule__Attr_decl__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:355:1: ( ( rule__Attr_decl__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:356:1: ( rule__Attr_decl__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_declAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:357:1: ( rule__Attr_decl__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:357:2: rule__Attr_decl__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_decl__Alternatives_in_ruleattr_decl700);
            rule__Attr_decl__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_declAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleattr_decl"


    // $ANTLR start "entryRulereadonly_attr_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:369:1: entryRulereadonly_attr_spec : rulereadonly_attr_spec EOF ;
    public final void entryRulereadonly_attr_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:370:1: ( rulereadonly_attr_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:371:1: rulereadonly_attr_spec EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulereadonly_attr_spec_in_entryRulereadonly_attr_spec727);
            rulereadonly_attr_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulereadonly_attr_spec734); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulereadonly_attr_spec"


    // $ANTLR start "rulereadonly_attr_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:378:1: rulereadonly_attr_spec : ( ( rule__Readonly_attr_spec__Alternatives ) ) ;
    public final void rulereadonly_attr_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:382:2: ( ( ( rule__Readonly_attr_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:383:1: ( ( rule__Readonly_attr_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:383:1: ( ( rule__Readonly_attr_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:384:1: ( rule__Readonly_attr_spec__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:385:1: ( rule__Readonly_attr_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:385:2: rule__Readonly_attr_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Alternatives_in_rulereadonly_attr_spec760);
            rule__Readonly_attr_spec__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulereadonly_attr_spec"


    // $ANTLR start "entryRuleattr_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:397:1: entryRuleattr_spec : ruleattr_spec EOF ;
    public final void entryRuleattr_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:398:1: ( ruleattr_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:399:1: ruleattr_spec EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleattr_spec_in_entryRuleattr_spec787);
            ruleattr_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleattr_spec794); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleattr_spec"


    // $ANTLR start "ruleattr_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:406:1: ruleattr_spec : ( ( rule__Attr_spec__Alternatives ) ) ;
    public final void ruleattr_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:410:2: ( ( ( rule__Attr_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:411:1: ( ( rule__Attr_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:411:1: ( ( rule__Attr_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:412:1: ( rule__Attr_spec__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:413:1: ( rule__Attr_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:413:2: rule__Attr_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_in_ruleattr_spec820);
            rule__Attr_spec__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleattr_spec"


    // $ANTLR start "entryRuleexcept_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:425:1: entryRuleexcept_decl : ruleexcept_decl EOF ;
    public final void entryRuleexcept_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:426:1: ( ruleexcept_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:427:1: ruleexcept_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexcept_decl_in_entryRuleexcept_decl847);
            ruleexcept_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleexcept_decl854); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleexcept_decl"


    // $ANTLR start "ruleexcept_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:434:1: ruleexcept_decl : ( ( rule__Except_decl__Group__0 ) ) ;
    public final void ruleexcept_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:438:2: ( ( ( rule__Except_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:439:1: ( ( rule__Except_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:439:1: ( ( rule__Except_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:440:1: ( rule__Except_decl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:441:1: ( rule__Except_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:441:2: rule__Except_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__0_in_ruleexcept_decl880);
            rule__Except_decl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleexcept_decl"


    // $ANTLR start "entryRuletype_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:453:1: entryRuletype_decl : ruletype_decl EOF ;
    public final void entryRuletype_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:454:1: ( ruletype_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:455:1: ruletype_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getType_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletype_decl_in_entryRuletype_decl907);
            ruletype_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getType_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuletype_decl914); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuletype_decl"


    // $ANTLR start "ruletype_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:462:1: ruletype_decl : ( ( rule__Type_decl__Alternatives ) ) ;
    public final void ruletype_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:466:2: ( ( ( rule__Type_decl__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:467:1: ( ( rule__Type_decl__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:467:1: ( ( rule__Type_decl__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:468:1: ( rule__Type_decl__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getType_declAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:469:1: ( rule__Type_decl__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:469:2: rule__Type_decl__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Alternatives_in_ruletype_decl940);
            rule__Type_decl__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getType_declAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruletype_decl"


    // $ANTLR start "entryRulealias_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:481:1: entryRulealias_type : rulealias_type EOF ;
    public final void entryRulealias_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:482:1: ( rulealias_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:483:1: rulealias_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulealias_type_in_entryRulealias_type967);
            rulealias_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulealias_type974); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulealias_type"


    // $ANTLR start "rulealias_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:490:1: rulealias_type : ( ( rule__Alias_type__Alternatives ) ) ;
    public final void rulealias_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:494:2: ( ( ( rule__Alias_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:495:1: ( ( rule__Alias_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:495:1: ( ( rule__Alias_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:496:1: ( rule__Alias_type__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:497:1: ( rule__Alias_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:497:2: rule__Alias_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Alternatives_in_rulealias_type1000);
            rule__Alias_type__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulealias_type"


    // $ANTLR start "entryRulearray_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:509:1: entryRulearray_type_spec : rulearray_type_spec EOF ;
    public final void entryRulearray_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:510:1: ( rulearray_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:511:1: rulearray_type_spec EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulearray_type_spec_in_entryRulearray_type_spec1027);
            rulearray_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulearray_type_spec1034); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulearray_type_spec"


    // $ANTLR start "rulearray_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:518:1: rulearray_type_spec : ( ( rule__Array_type_spec__Group__0 ) ) ;
    public final void rulearray_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:522:2: ( ( ( rule__Array_type_spec__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:523:1: ( ( rule__Array_type_spec__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:523:1: ( ( rule__Array_type_spec__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:524:1: ( rule__Array_type_spec__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:525:1: ( rule__Array_type_spec__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:525:2: rule__Array_type_spec__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__0_in_rulearray_type_spec1060);
            rule__Array_type_spec__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulearray_type_spec"


    // $ANTLR start "entryRulesimple_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:537:1: entryRulesimple_type_spec : rulesimple_type_spec EOF ;
    public final void entryRulesimple_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:538:1: ( rulesimple_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:539:1: rulesimple_type_spec EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSimple_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesimple_type_spec_in_entryRulesimple_type_spec1087);
            rulesimple_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSimple_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulesimple_type_spec1094); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulesimple_type_spec"


    // $ANTLR start "rulesimple_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:546:1: rulesimple_type_spec : ( ( rule__Simple_type_spec__Alternatives ) ) ;
    public final void rulesimple_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:550:2: ( ( ( rule__Simple_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:551:1: ( ( rule__Simple_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:551:1: ( ( rule__Simple_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:552:1: ( rule__Simple_type_spec__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSimple_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:553:1: ( rule__Simple_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:553:2: rule__Simple_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Simple_type_spec__Alternatives_in_rulesimple_type_spec1120);
            rule__Simple_type_spec__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSimple_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulesimple_type_spec"


    // $ANTLR start "entryRulebase_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:565:1: entryRulebase_type_spec : rulebase_type_spec EOF ;
    public final void entryRulebase_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:566:1: ( rulebase_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:567:1: rulebase_type_spec EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBase_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_entryRulebase_type_spec1147);
            rulebase_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBase_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulebase_type_spec1154); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulebase_type_spec"


    // $ANTLR start "rulebase_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:574:1: rulebase_type_spec : ( ( rule__Base_type_spec__Alternatives ) ) ;
    public final void rulebase_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:578:2: ( ( ( rule__Base_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:579:1: ( ( rule__Base_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:579:1: ( ( rule__Base_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:580:1: ( rule__Base_type_spec__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBase_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:581:1: ( rule__Base_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:581:2: rule__Base_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Base_type_spec__Alternatives_in_rulebase_type_spec1180);
            rule__Base_type_spec__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBase_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulebase_type_spec"


    // $ANTLR start "entryRuletemplate_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:593:1: entryRuletemplate_type_spec : ruletemplate_type_spec EOF ;
    public final void entryRuletemplate_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:594:1: ( ruletemplate_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:595:1: ruletemplate_type_spec EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTemplate_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletemplate_type_spec_in_entryRuletemplate_type_spec1207);
            ruletemplate_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTemplate_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuletemplate_type_spec1214); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuletemplate_type_spec"


    // $ANTLR start "ruletemplate_type_spec"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:602:1: ruletemplate_type_spec : ( ( rule__Template_type_spec__Alternatives ) ) ;
    public final void ruletemplate_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:606:2: ( ( ( rule__Template_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:607:1: ( ( rule__Template_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:607:1: ( ( rule__Template_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:608:1: ( rule__Template_type_spec__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTemplate_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:609:1: ( rule__Template_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:609:2: rule__Template_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Template_type_spec__Alternatives_in_ruletemplate_type_spec1240);
            rule__Template_type_spec__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTemplate_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruletemplate_type_spec"


    // $ANTLR start "entryRulestruct_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:623:1: entryRulestruct_type : rulestruct_type EOF ;
    public final void entryRulestruct_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:624:1: ( rulestruct_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:625:1: rulestruct_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulestruct_type_in_entryRulestruct_type1269);
            rulestruct_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulestruct_type1276); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulestruct_type"


    // $ANTLR start "rulestruct_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:632:1: rulestruct_type : ( ( rule__Struct_type__Group__0 ) ) ;
    public final void rulestruct_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:636:2: ( ( ( rule__Struct_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:637:1: ( ( rule__Struct_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:637:1: ( ( rule__Struct_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:638:1: ( rule__Struct_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:639:1: ( rule__Struct_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:639:2: rule__Struct_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__0_in_rulestruct_type1302);
            rule__Struct_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulestruct_type"


    // $ANTLR start "entryRulemember"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:651:1: entryRulemember : rulemember EOF ;
    public final void entryRulemember() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:652:1: ( rulemember EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:653:1: rulemember EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemember_in_entryRulemember1329);
            rulemember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulemember1336); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulemember"


    // $ANTLR start "rulemember"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:660:1: rulemember : ( ( rule__Member__Alternatives ) ) ;
    public final void rulemember() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:664:2: ( ( ( rule__Member__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:665:1: ( ( rule__Member__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:665:1: ( ( rule__Member__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:666:1: ( rule__Member__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:667:1: ( rule__Member__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:667:2: rule__Member__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Alternatives_in_rulemember1362);
            rule__Member__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulemember"


    // $ANTLR start "entryRuleunion_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:679:1: entryRuleunion_type : ruleunion_type EOF ;
    public final void entryRuleunion_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:680:1: ( ruleunion_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:681:1: ruleunion_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunion_type_in_entryRuleunion_type1389);
            ruleunion_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleunion_type1396); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleunion_type"


    // $ANTLR start "ruleunion_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:688:1: ruleunion_type : ( ( rule__Union_type__Group__0 ) ) ;
    public final void ruleunion_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:692:2: ( ( ( rule__Union_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:693:1: ( ( rule__Union_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:693:1: ( ( rule__Union_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:694:1: ( rule__Union_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:695:1: ( rule__Union_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:695:2: rule__Union_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__0_in_ruleunion_type1422);
            rule__Union_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleunion_type"


    // $ANTLR start "entryRuleswitch_type_spec_cont"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:707:1: entryRuleswitch_type_spec_cont : ruleswitch_type_spec_cont EOF ;
    public final void entryRuleswitch_type_spec_cont() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:708:1: ( ruleswitch_type_spec_cont EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:709:1: ruleswitch_type_spec_cont EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleswitch_type_spec_cont_in_entryRuleswitch_type_spec_cont1449);
            ruleswitch_type_spec_cont();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleswitch_type_spec_cont1456); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleswitch_type_spec_cont"


    // $ANTLR start "ruleswitch_type_spec_cont"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:716:1: ruleswitch_type_spec_cont : ( ( rule__Switch_type_spec_cont__Alternatives ) ) ;
    public final void ruleswitch_type_spec_cont() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:720:2: ( ( ( rule__Switch_type_spec_cont__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:721:1: ( ( rule__Switch_type_spec_cont__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:721:1: ( ( rule__Switch_type_spec_cont__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:722:1: ( rule__Switch_type_spec_cont__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:723:1: ( rule__Switch_type_spec_cont__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:723:2: rule__Switch_type_spec_cont__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Alternatives_in_ruleswitch_type_spec_cont1482);
            rule__Switch_type_spec_cont__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleswitch_type_spec_cont"


    // $ANTLR start "entryRulecase_stmt"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:735:1: entryRulecase_stmt : rulecase_stmt EOF ;
    public final void entryRulecase_stmt() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:736:1: ( rulecase_stmt EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:737:1: rulecase_stmt EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulecase_stmt_in_entryRulecase_stmt1509);
            rulecase_stmt();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulecase_stmt1516); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulecase_stmt"


    // $ANTLR start "rulecase_stmt"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:744:1: rulecase_stmt : ( ( rule__Case_stmt__Alternatives ) ) ;
    public final void rulecase_stmt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:748:2: ( ( ( rule__Case_stmt__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:749:1: ( ( rule__Case_stmt__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:749:1: ( ( rule__Case_stmt__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:750:1: ( rule__Case_stmt__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:751:1: ( rule__Case_stmt__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:751:2: rule__Case_stmt__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_in_rulecase_stmt1542);
            rule__Case_stmt__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulecase_stmt"


    // $ANTLR start "entryRuleenum_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:763:1: entryRuleenum_type : ruleenum_type EOF ;
    public final void entryRuleenum_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:764:1: ( ruleenum_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:765:1: ruleenum_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleenum_type_in_entryRuleenum_type1569);
            ruleenum_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleenum_type1576); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleenum_type"


    // $ANTLR start "ruleenum_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:772:1: ruleenum_type : ( ( rule__Enum_type__Group__0 ) ) ;
    public final void ruleenum_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:776:2: ( ( ( rule__Enum_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:777:1: ( ( rule__Enum_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:777:1: ( ( rule__Enum_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:778:1: ( rule__Enum_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:779:1: ( rule__Enum_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:779:2: rule__Enum_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__0_in_ruleenum_type1602);
            rule__Enum_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleenum_type"


    // $ANTLR start "entryRuleenum_member"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:791:1: entryRuleenum_member : ruleenum_member EOF ;
    public final void entryRuleenum_member() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:792:1: ( ruleenum_member EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:793:1: ruleenum_member EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_memberRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleenum_member_in_entryRuleenum_member1629);
            ruleenum_member();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_memberRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleenum_member1636); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleenum_member"


    // $ANTLR start "ruleenum_member"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:800:1: ruleenum_member : ( ( rule__Enum_member__IdentifierAssignment ) ) ;
    public final void ruleenum_member() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:804:2: ( ( ( rule__Enum_member__IdentifierAssignment ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:805:1: ( ( rule__Enum_member__IdentifierAssignment ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:805:1: ( ( rule__Enum_member__IdentifierAssignment ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:806:1: ( rule__Enum_member__IdentifierAssignment )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_memberAccess().getIdentifierAssignment()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:807:1: ( rule__Enum_member__IdentifierAssignment )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:807:2: rule__Enum_member__IdentifierAssignment
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_member__IdentifierAssignment_in_ruleenum_member1662);
            rule__Enum_member__IdentifierAssignment();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_memberAccess().getIdentifierAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleenum_member"


    // $ANTLR start "entryRuleconstr_forward_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:819:1: entryRuleconstr_forward_decl : ruleconstr_forward_decl EOF ;
    public final void entryRuleconstr_forward_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:820:1: ( ruleconstr_forward_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:821:1: ruleconstr_forward_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconstr_forward_decl_in_entryRuleconstr_forward_decl1689);
            ruleconstr_forward_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconstr_forward_decl1696); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleconstr_forward_decl"


    // $ANTLR start "ruleconstr_forward_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:828:1: ruleconstr_forward_decl : ( ( rule__Constr_forward_decl__Alternatives ) ) ;
    public final void ruleconstr_forward_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:832:2: ( ( ( rule__Constr_forward_decl__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:833:1: ( ( rule__Constr_forward_decl__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:833:1: ( ( rule__Constr_forward_decl__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:834:1: ( rule__Constr_forward_decl__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:835:1: ( rule__Constr_forward_decl__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:835:2: rule__Constr_forward_decl__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Alternatives_in_ruleconstr_forward_decl1722);
            rule__Constr_forward_decl__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleconstr_forward_decl"


    // $ANTLR start "entryRuleconst_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:847:1: entryRuleconst_decl : ruleconst_decl EOF ;
    public final void entryRuleconst_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:848:1: ( ruleconst_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:849:1: ruleconst_decl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_decl_in_entryRuleconst_decl1749);
            ruleconst_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconst_decl1756); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleconst_decl"


    // $ANTLR start "ruleconst_decl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:856:1: ruleconst_decl : ( ( rule__Const_decl__Group__0 ) ) ;
    public final void ruleconst_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:860:2: ( ( ( rule__Const_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:861:1: ( ( rule__Const_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:861:1: ( ( rule__Const_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:862:1: ( rule__Const_decl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:863:1: ( rule__Const_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:863:2: rule__Const_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__0_in_ruleconst_decl1782);
            rule__Const_decl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleconst_decl"


    // $ANTLR start "entryRuleconst_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:875:1: entryRuleconst_type : ruleconst_type EOF ;
    public final void entryRuleconst_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:876:1: ( ruleconst_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:877:1: ruleconst_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_type_in_entryRuleconst_type1809);
            ruleconst_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconst_type1816); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleconst_type"


    // $ANTLR start "ruleconst_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:884:1: ruleconst_type : ( ( rule__Const_type__Alternatives ) ) ;
    public final void ruleconst_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:888:2: ( ( ( rule__Const_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:889:1: ( ( rule__Const_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:889:1: ( ( rule__Const_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:890:1: ( rule__Const_type__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:891:1: ( rule__Const_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:891:2: rule__Const_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_type__Alternatives_in_ruleconst_type1842);
            rule__Const_type__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleconst_type"


    // $ANTLR start "entryRuleprimitive_def"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:903:1: entryRuleprimitive_def : ruleprimitive_def EOF ;
    public final void entryRuleprimitive_def() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:904:1: ( ruleprimitive_def EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:905:1: ruleprimitive_def EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitive_defRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleprimitive_def_in_entryRuleprimitive_def1869);
            ruleprimitive_def();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitive_defRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleprimitive_def1876); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleprimitive_def"


    // $ANTLR start "ruleprimitive_def"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:912:1: ruleprimitive_def : ( ( rule__Primitive_def__Alternatives ) ) ;
    public final void ruleprimitive_def() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:916:2: ( ( ( rule__Primitive_def__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:917:1: ( ( rule__Primitive_def__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:917:1: ( ( rule__Primitive_def__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:918:1: ( rule__Primitive_def__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimitive_defAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:919:1: ( rule__Primitive_def__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:919:2: rule__Primitive_def__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Primitive_def__Alternatives_in_ruleprimitive_def1902);
            rule__Primitive_def__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimitive_defAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleprimitive_def"


    // $ANTLR start "entryRulesequence_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:931:1: entryRulesequence_type : rulesequence_type EOF ;
    public final void entryRulesequence_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:932:1: ( rulesequence_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:933:1: rulesequence_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesequence_type_in_entryRulesequence_type1929);
            rulesequence_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulesequence_type1936); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulesequence_type"


    // $ANTLR start "rulesequence_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:940:1: rulesequence_type : ( ( rule__Sequence_type__Group__0 ) ) ;
    public final void rulesequence_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:944:2: ( ( ( rule__Sequence_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:945:1: ( ( rule__Sequence_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:945:1: ( ( rule__Sequence_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:946:1: ( rule__Sequence_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:947:1: ( rule__Sequence_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:947:2: rule__Sequence_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__0_in_rulesequence_type1962);
            rule__Sequence_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulesequence_type"


    // $ANTLR start "entryRulestringdef_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:959:1: entryRulestringdef_type : rulestringdef_type EOF ;
    public final void entryRulestringdef_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:960:1: ( rulestringdef_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:961:1: rulestringdef_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStringdef_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulestringdef_type_in_entryRulestringdef_type1989);
            rulestringdef_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStringdef_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulestringdef_type1996); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulestringdef_type"


    // $ANTLR start "rulestringdef_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:968:1: rulestringdef_type : ( ( rule__Stringdef_type__Group__0 ) ) ;
    public final void rulestringdef_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:972:2: ( ( ( rule__Stringdef_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:973:1: ( ( rule__Stringdef_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:973:1: ( ( rule__Stringdef_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:974:1: ( rule__Stringdef_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:975:1: ( rule__Stringdef_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:975:2: rule__Stringdef_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__0_in_rulestringdef_type2022);
            rule__Stringdef_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulestringdef_type"


    // $ANTLR start "entryRulewide_stringdef_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:987:1: entryRulewide_stringdef_type : rulewide_stringdef_type EOF ;
    public final void entryRulewide_stringdef_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:988:1: ( rulewide_stringdef_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:989:1: rulewide_stringdef_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulewide_stringdef_type_in_entryRulewide_stringdef_type2049);
            rulewide_stringdef_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulewide_stringdef_type2056); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulewide_stringdef_type"


    // $ANTLR start "rulewide_stringdef_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:996:1: rulewide_stringdef_type : ( ( rule__Wide_stringdef_type__Group__0 ) ) ;
    public final void rulewide_stringdef_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1000:2: ( ( ( rule__Wide_stringdef_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1001:1: ( ( rule__Wide_stringdef_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1001:1: ( ( rule__Wide_stringdef_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1002:1: ( rule__Wide_stringdef_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1003:1: ( rule__Wide_stringdef_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1003:2: rule__Wide_stringdef_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__0_in_rulewide_stringdef_type2082);
            rule__Wide_stringdef_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulewide_stringdef_type"


    // $ANTLR start "entryRulefixed_pt_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1015:1: entryRulefixed_pt_type : rulefixed_pt_type EOF ;
    public final void entryRulefixed_pt_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1016:1: ( rulefixed_pt_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1017:1: rulefixed_pt_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulefixed_pt_type_in_entryRulefixed_pt_type2109);
            rulefixed_pt_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulefixed_pt_type2116); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulefixed_pt_type"


    // $ANTLR start "rulefixed_pt_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1024:1: rulefixed_pt_type : ( ( rule__Fixed_pt_type__Group__0 ) ) ;
    public final void rulefixed_pt_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1028:2: ( ( ( rule__Fixed_pt_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1029:1: ( ( rule__Fixed_pt_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1029:1: ( ( rule__Fixed_pt_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1030:1: ( rule__Fixed_pt_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1031:1: ( rule__Fixed_pt_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1031:2: rule__Fixed_pt_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__0_in_rulefixed_pt_type2142);
            rule__Fixed_pt_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulefixed_pt_type"


    // $ANTLR start "entryRulefloating_pt_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1043:1: entryRulefloating_pt_type : rulefloating_pt_type EOF ;
    public final void entryRulefloating_pt_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1044:1: ( rulefloating_pt_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1045:1: rulefloating_pt_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulefloating_pt_type_in_entryRulefloating_pt_type2169);
            rulefloating_pt_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulefloating_pt_type2176); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulefloating_pt_type"


    // $ANTLR start "rulefloating_pt_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1052:1: rulefloating_pt_type : ( ( rule__Floating_pt_type__Alternatives ) ) ;
    public final void rulefloating_pt_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1056:2: ( ( ( rule__Floating_pt_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1057:1: ( ( rule__Floating_pt_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1057:1: ( ( rule__Floating_pt_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1058:1: ( rule__Floating_pt_type__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1059:1: ( rule__Floating_pt_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1059:2: rule__Floating_pt_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__Alternatives_in_rulefloating_pt_type2202);
            rule__Floating_pt_type__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulefloating_pt_type"


    // $ANTLR start "entryRulelongdouble_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1071:1: entryRulelongdouble_type : rulelongdouble_type EOF ;
    public final void entryRulelongdouble_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1072:1: ( rulelongdouble_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1073:1: rulelongdouble_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulelongdouble_type_in_entryRulelongdouble_type2229);
            rulelongdouble_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulelongdouble_type2236); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulelongdouble_type"


    // $ANTLR start "rulelongdouble_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1080:1: rulelongdouble_type : ( ( rule__Longdouble_type__Group__0 ) ) ;
    public final void rulelongdouble_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1084:2: ( ( ( rule__Longdouble_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1085:1: ( ( rule__Longdouble_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1085:1: ( ( rule__Longdouble_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1086:1: ( rule__Longdouble_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1087:1: ( rule__Longdouble_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1087:2: rule__Longdouble_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__0_in_rulelongdouble_type2262);
            rule__Longdouble_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulelongdouble_type"


    // $ANTLR start "entryRuleinteger_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1099:1: entryRuleinteger_type : ruleinteger_type EOF ;
    public final void entryRuleinteger_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1100:1: ( ruleinteger_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1101:1: ruleinteger_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinteger_type_in_entryRuleinteger_type2289);
            ruleinteger_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinteger_type2296); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleinteger_type"


    // $ANTLR start "ruleinteger_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1108:1: ruleinteger_type : ( ( rule__Integer_type__Alternatives ) ) ;
    public final void ruleinteger_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1112:2: ( ( ( rule__Integer_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1113:1: ( ( rule__Integer_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1113:1: ( ( rule__Integer_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1114:1: ( rule__Integer_type__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1115:1: ( rule__Integer_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1115:2: rule__Integer_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Integer_type__Alternatives_in_ruleinteger_type2322);
            rule__Integer_type__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleinteger_type"


    // $ANTLR start "entryRulelonglong_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1127:1: entryRulelonglong_type : rulelonglong_type EOF ;
    public final void entryRulelonglong_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1128:1: ( rulelonglong_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1129:1: rulelonglong_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLonglong_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulelonglong_type_in_entryRulelonglong_type2349);
            rulelonglong_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLonglong_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulelonglong_type2356); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulelonglong_type"


    // $ANTLR start "rulelonglong_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1136:1: rulelonglong_type : ( ( rule__Longlong_type__Group__0 ) ) ;
    public final void rulelonglong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1140:2: ( ( ( rule__Longlong_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1141:1: ( ( rule__Longlong_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1141:1: ( ( rule__Longlong_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1142:1: ( rule__Longlong_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLonglong_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1143:1: ( rule__Longlong_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1143:2: rule__Longlong_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__0_in_rulelonglong_type2382);
            rule__Longlong_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLonglong_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulelonglong_type"


    // $ANTLR start "entryRuleushort_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1155:1: entryRuleushort_type : ruleushort_type EOF ;
    public final void entryRuleushort_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1156:1: ( ruleushort_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1157:1: ruleushort_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUshort_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleushort_type_in_entryRuleushort_type2409);
            ruleushort_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUshort_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleushort_type2416); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleushort_type"


    // $ANTLR start "ruleushort_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1164:1: ruleushort_type : ( ( rule__Ushort_type__Group__0 ) ) ;
    public final void ruleushort_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1168:2: ( ( ( rule__Ushort_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1169:1: ( ( rule__Ushort_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1169:1: ( ( rule__Ushort_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1170:1: ( rule__Ushort_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUshort_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1171:1: ( rule__Ushort_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1171:2: rule__Ushort_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__0_in_ruleushort_type2442);
            rule__Ushort_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUshort_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleushort_type"


    // $ANTLR start "entryRuleulong_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1183:1: entryRuleulong_type : ruleulong_type EOF ;
    public final void entryRuleulong_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1184:1: ( ruleulong_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1185:1: ruleulong_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlong_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleulong_type_in_entryRuleulong_type2469);
            ruleulong_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlong_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleulong_type2476); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleulong_type"


    // $ANTLR start "ruleulong_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1192:1: ruleulong_type : ( ( rule__Ulong_type__Group__0 ) ) ;
    public final void ruleulong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1196:2: ( ( ( rule__Ulong_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1197:1: ( ( rule__Ulong_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1197:1: ( ( rule__Ulong_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1198:1: ( rule__Ulong_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlong_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1199:1: ( rule__Ulong_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1199:2: rule__Ulong_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__0_in_ruleulong_type2502);
            rule__Ulong_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlong_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleulong_type"


    // $ANTLR start "entryRuleulonglong_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1211:1: entryRuleulonglong_type : ruleulonglong_type EOF ;
    public final void entryRuleulonglong_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1212:1: ( ruleulonglong_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1213:1: ruleulonglong_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleulonglong_type_in_entryRuleulonglong_type2529);
            ruleulonglong_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleulonglong_type2536); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleulonglong_type"


    // $ANTLR start "ruleulonglong_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1220:1: ruleulonglong_type : ( ( rule__Ulonglong_type__Group__0 ) ) ;
    public final void ruleulonglong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1224:2: ( ( ( rule__Ulonglong_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1225:1: ( ( rule__Ulonglong_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1225:1: ( ( rule__Ulonglong_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1226:1: ( rule__Ulonglong_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1227:1: ( rule__Ulonglong_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1227:2: rule__Ulonglong_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__0_in_ruleulonglong_type2562);
            rule__Ulonglong_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleulonglong_type"


    // $ANTLR start "entryRulecharstr_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1239:1: entryRulecharstr_type : rulecharstr_type EOF ;
    public final void entryRulecharstr_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1240:1: ( rulecharstr_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1241:1: rulecharstr_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCharstr_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulecharstr_type_in_entryRulecharstr_type2589);
            rulecharstr_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCharstr_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulecharstr_type2596); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulecharstr_type"


    // $ANTLR start "rulecharstr_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1248:1: rulecharstr_type : ( ( rule__Charstr_type__Alternatives ) ) ;
    public final void rulecharstr_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1252:2: ( ( ( rule__Charstr_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1253:1: ( ( rule__Charstr_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1253:1: ( ( rule__Charstr_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1254:1: ( rule__Charstr_type__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1255:1: ( rule__Charstr_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1255:2: rule__Charstr_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__Alternatives_in_rulecharstr_type2622);
            rule__Charstr_type__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulecharstr_type"


    // $ANTLR start "entryRuleother_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1267:1: entryRuleother_type : ruleother_type EOF ;
    public final void entryRuleother_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1268:1: ( ruleother_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1269:1: ruleother_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOther_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleother_type_in_entryRuleother_type2649);
            ruleother_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOther_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleother_type2656); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleother_type"


    // $ANTLR start "ruleother_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1276:1: ruleother_type : ( ( rule__Other_type__Alternatives ) ) ;
    public final void ruleother_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1280:2: ( ( ( rule__Other_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1281:1: ( ( rule__Other_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1281:1: ( ( rule__Other_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1282:1: ( rule__Other_type__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1283:1: ( rule__Other_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1283:2: rule__Other_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Other_type__Alternatives_in_ruleother_type2682);
            rule__Other_type__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleother_type"


    // $ANTLR start "entryRulefixed_pt_const_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1295:1: entryRulefixed_pt_const_type : rulefixed_pt_const_type EOF ;
    public final void entryRulefixed_pt_const_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1296:1: ( rulefixed_pt_const_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1297:1: rulefixed_pt_const_type EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulefixed_pt_const_type_in_entryRulefixed_pt_const_type2709);
            rulefixed_pt_const_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulefixed_pt_const_type2716); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulefixed_pt_const_type"


    // $ANTLR start "rulefixed_pt_const_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1304:1: rulefixed_pt_const_type : ( ( rule__Fixed_pt_const_type__Group__0 ) ) ;
    public final void rulefixed_pt_const_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1308:2: ( ( ( rule__Fixed_pt_const_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1309:1: ( ( rule__Fixed_pt_const_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1309:1: ( ( rule__Fixed_pt_const_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1310:1: ( rule__Fixed_pt_const_type__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1311:1: ( rule__Fixed_pt_const_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1311:2: rule__Fixed_pt_const_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__0_in_rulefixed_pt_const_type2742);
            rule__Fixed_pt_const_type__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulefixed_pt_const_type"


    // $ANTLR start "entryRuleconst_exp"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1323:1: entryRuleconst_exp : ruleconst_exp EOF ;
    public final void entryRuleconst_exp() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1324:1: ( ruleconst_exp EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1325:1: ruleconst_exp EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_expRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_entryRuleconst_exp2769);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_expRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconst_exp2776); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleconst_exp"


    // $ANTLR start "ruleconst_exp"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1332:1: ruleconst_exp : ( ruleor_expr ) ;
    public final void ruleconst_exp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1336:2: ( ( ruleor_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1337:1: ( ruleor_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1337:1: ( ruleor_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1338:1: ruleor_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_expAccess().getOr_exprParserRuleCall()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleor_expr_in_ruleconst_exp2802);
            ruleor_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_expAccess().getOr_exprParserRuleCall()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleconst_exp"


    // $ANTLR start "entryRuleor_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1351:1: entryRuleor_expr : ruleor_expr EOF ;
    public final void entryRuleor_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1352:1: ( ruleor_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1353:1: ruleor_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleor_expr_in_entryRuleor_expr2828);
            ruleor_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleor_expr2835); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleor_expr"


    // $ANTLR start "ruleor_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1360:1: ruleor_expr : ( ( rule__Or_expr__Group__0 ) ) ;
    public final void ruleor_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1364:2: ( ( ( rule__Or_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1365:1: ( ( rule__Or_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1365:1: ( ( rule__Or_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1366:1: ( rule__Or_expr__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1367:1: ( rule__Or_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1367:2: rule__Or_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__0_in_ruleor_expr2861);
            rule__Or_expr__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleor_expr"


    // $ANTLR start "entryRulexor_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1379:1: entryRulexor_expr : rulexor_expr EOF ;
    public final void entryRulexor_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1380:1: ( rulexor_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1381:1: rulexor_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulexor_expr_in_entryRulexor_expr2888);
            rulexor_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulexor_expr2895); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulexor_expr"


    // $ANTLR start "rulexor_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1388:1: rulexor_expr : ( ( rule__Xor_expr__Group__0 ) ) ;
    public final void rulexor_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1392:2: ( ( ( rule__Xor_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1393:1: ( ( rule__Xor_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1393:1: ( ( rule__Xor_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1394:1: ( rule__Xor_expr__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1395:1: ( rule__Xor_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1395:2: rule__Xor_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__0_in_rulexor_expr2921);
            rule__Xor_expr__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulexor_expr"


    // $ANTLR start "entryRuleand_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1407:1: entryRuleand_expr : ruleand_expr EOF ;
    public final void entryRuleand_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1408:1: ( ruleand_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1409:1: ruleand_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleand_expr_in_entryRuleand_expr2948);
            ruleand_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleand_expr2955); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleand_expr"


    // $ANTLR start "ruleand_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1416:1: ruleand_expr : ( ( rule__And_expr__Group__0 ) ) ;
    public final void ruleand_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1420:2: ( ( ( rule__And_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1421:1: ( ( rule__And_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1421:1: ( ( rule__And_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1422:1: ( rule__And_expr__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1423:1: ( rule__And_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1423:2: rule__And_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__0_in_ruleand_expr2981);
            rule__And_expr__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleand_expr"


    // $ANTLR start "entryRuleshift_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1435:1: entryRuleshift_expr : ruleshift_expr EOF ;
    public final void entryRuleshift_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1436:1: ( ruleshift_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1437:1: ruleshift_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleshift_expr_in_entryRuleshift_expr3008);
            ruleshift_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleshift_expr3015); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleshift_expr"


    // $ANTLR start "ruleshift_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1444:1: ruleshift_expr : ( ( rule__Shift_expr__Group__0 ) ) ;
    public final void ruleshift_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1448:2: ( ( ( rule__Shift_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1449:1: ( ( rule__Shift_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1449:1: ( ( rule__Shift_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1450:1: ( rule__Shift_expr__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1451:1: ( rule__Shift_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1451:2: rule__Shift_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__0_in_ruleshift_expr3041);
            rule__Shift_expr__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleshift_expr"


    // $ANTLR start "entryRuleadd_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1463:1: entryRuleadd_expr : ruleadd_expr EOF ;
    public final void entryRuleadd_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1464:1: ( ruleadd_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1465:1: ruleadd_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleadd_expr_in_entryRuleadd_expr3068);
            ruleadd_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleadd_expr3075); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleadd_expr"


    // $ANTLR start "ruleadd_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1472:1: ruleadd_expr : ( ( rule__Add_expr__Group__0 ) ) ;
    public final void ruleadd_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1476:2: ( ( ( rule__Add_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1477:1: ( ( rule__Add_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1477:1: ( ( rule__Add_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1478:1: ( rule__Add_expr__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1479:1: ( rule__Add_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1479:2: rule__Add_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group__0_in_ruleadd_expr3101);
            rule__Add_expr__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleadd_expr"


    // $ANTLR start "entryRulemult_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1491:1: entryRulemult_expr : rulemult_expr EOF ;
    public final void entryRulemult_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1492:1: ( rulemult_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1493:1: rulemult_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemult_expr_in_entryRulemult_expr3128);
            rulemult_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulemult_expr3135); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulemult_expr"


    // $ANTLR start "rulemult_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1500:1: rulemult_expr : ( ( rule__Mult_expr__Group__0 ) ) ;
    public final void rulemult_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1504:2: ( ( ( rule__Mult_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1505:1: ( ( rule__Mult_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1505:1: ( ( rule__Mult_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1506:1: ( rule__Mult_expr__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1507:1: ( rule__Mult_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1507:2: rule__Mult_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group__0_in_rulemult_expr3161);
            rule__Mult_expr__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulemult_expr"


    // $ANTLR start "entryRuleunary_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1519:1: entryRuleunary_expr : ruleunary_expr EOF ;
    public final void entryRuleunary_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1520:1: ( ruleunary_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1521:1: ruleunary_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunary_expr_in_entryRuleunary_expr3188);
            ruleunary_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleunary_expr3195); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleunary_expr"


    // $ANTLR start "ruleunary_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1528:1: ruleunary_expr : ( ( rule__Unary_expr__Alternatives ) ) ;
    public final void ruleunary_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1532:2: ( ( ( rule__Unary_expr__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1533:1: ( ( rule__Unary_expr__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1533:1: ( ( rule__Unary_expr__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1534:1: ( rule__Unary_expr__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1535:1: ( rule__Unary_expr__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1535:2: rule__Unary_expr__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Alternatives_in_ruleunary_expr3221);
            rule__Unary_expr__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleunary_expr"


    // $ANTLR start "entryRuleunary_operator"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1547:1: entryRuleunary_operator : ruleunary_operator EOF ;
    public final void entryRuleunary_operator() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1548:1: ( ruleunary_operator EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1549:1: ruleunary_operator EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_operatorRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunary_operator_in_entryRuleunary_operator3248);
            ruleunary_operator();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_operatorRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleunary_operator3255); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleunary_operator"


    // $ANTLR start "ruleunary_operator"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1556:1: ruleunary_operator : ( ( rule__Unary_operator__Alternatives ) ) ;
    public final void ruleunary_operator() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1560:2: ( ( ( rule__Unary_operator__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1561:1: ( ( rule__Unary_operator__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1561:1: ( ( rule__Unary_operator__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1562:1: ( rule__Unary_operator__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_operatorAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1563:1: ( rule__Unary_operator__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1563:2: rule__Unary_operator__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_operator__Alternatives_in_ruleunary_operator3281);
            rule__Unary_operator__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_operatorAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleunary_operator"


    // $ANTLR start "entryRuleprimary_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1575:1: entryRuleprimary_expr : ruleprimary_expr EOF ;
    public final void entryRuleprimary_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1576:1: ( ruleprimary_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1577:1: ruleprimary_expr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimary_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleprimary_expr_in_entryRuleprimary_expr3308);
            ruleprimary_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimary_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleprimary_expr3315); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleprimary_expr"


    // $ANTLR start "ruleprimary_expr"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1584:1: ruleprimary_expr : ( ( rule__Primary_expr__Alternatives ) ) ;
    public final void ruleprimary_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1588:2: ( ( ( rule__Primary_expr__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1589:1: ( ( rule__Primary_expr__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1589:1: ( ( rule__Primary_expr__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1590:1: ( rule__Primary_expr__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1591:1: ( rule__Primary_expr__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1591:2: rule__Primary_expr__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Alternatives_in_ruleprimary_expr3341);
            rule__Primary_expr__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleprimary_expr"


    // $ANTLR start "entryRuleconstantDefRef"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1603:1: entryRuleconstantDefRef : ruleconstantDefRef EOF ;
    public final void entryRuleconstantDefRef() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1604:1: ( ruleconstantDefRef EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1605:1: ruleconstantDefRef EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstantDefRefRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconstantDefRef_in_entryRuleconstantDefRef3368);
            ruleconstantDefRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstantDefRefRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconstantDefRef3375); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleconstantDefRef"


    // $ANTLR start "ruleconstantDefRef"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1612:1: ruleconstantDefRef : ( ( rule__ConstantDefRef__ConstantAssignment ) ) ;
    public final void ruleconstantDefRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1616:2: ( ( ( rule__ConstantDefRef__ConstantAssignment ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1617:1: ( ( rule__ConstantDefRef__ConstantAssignment ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1617:1: ( ( rule__ConstantDefRef__ConstantAssignment ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1618:1: ( rule__ConstantDefRef__ConstantAssignment )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstantDefRefAccess().getConstantAssignment()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1619:1: ( rule__ConstantDefRef__ConstantAssignment )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1619:2: rule__ConstantDefRef__ConstantAssignment
            {
            pushFollow(FollowSets000.FOLLOW_rule__ConstantDefRef__ConstantAssignment_in_ruleconstantDefRef3401);
            rule__ConstantDefRef__ConstantAssignment();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstantDefRefAccess().getConstantAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleconstantDefRef"


    // $ANTLR start "entryRulevalueExpression"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1631:1: entryRulevalueExpression : rulevalueExpression EOF ;
    public final void entryRulevalueExpression() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1632:1: ( rulevalueExpression EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1633:1: rulevalueExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulevalueExpression_in_entryRulevalueExpression3428);
            rulevalueExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulevalueExpression3435); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulevalueExpression"


    // $ANTLR start "rulevalueExpression"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1640:1: rulevalueExpression : ( ( rule__ValueExpression__ValueAssignment ) ) ;
    public final void rulevalueExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1644:2: ( ( ( rule__ValueExpression__ValueAssignment ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1645:1: ( ( rule__ValueExpression__ValueAssignment ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1645:1: ( ( rule__ValueExpression__ValueAssignment ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1646:1: ( rule__ValueExpression__ValueAssignment )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueExpressionAccess().getValueAssignment()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1647:1: ( rule__ValueExpression__ValueAssignment )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1647:2: rule__ValueExpression__ValueAssignment
            {
            pushFollow(FollowSets000.FOLLOW_rule__ValueExpression__ValueAssignment_in_rulevalueExpression3461);
            rule__ValueExpression__ValueAssignment();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueExpressionAccess().getValueAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulevalueExpression"


    // $ANTLR start "entryRuleliteral"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1659:1: entryRuleliteral : ruleliteral EOF ;
    public final void entryRuleliteral() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1660:1: ( ruleliteral EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1661:1: ruleliteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleliteral_in_entryRuleliteral3488);
            ruleliteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleliteral3495); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleliteral"


    // $ANTLR start "ruleliteral"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1668:1: ruleliteral : ( ( rule__Literal__Alternatives ) ) ;
    public final void ruleliteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1672:2: ( ( ( rule__Literal__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1673:1: ( ( rule__Literal__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1673:1: ( ( rule__Literal__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1674:1: ( rule__Literal__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLiteralAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1675:1: ( rule__Literal__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1675:2: rule__Literal__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Literal__Alternatives_in_ruleliteral3521);
            rule__Literal__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLiteralAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleliteral"


    // $ANTLR start "ruleparam_attribute"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1688:1: ruleparam_attribute : ( ( rule__Param_attribute__Alternatives ) ) ;
    public final void ruleparam_attribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1692:1: ( ( ( rule__Param_attribute__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1693:1: ( ( rule__Param_attribute__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1693:1: ( ( rule__Param_attribute__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1694:1: ( rule__Param_attribute__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_attributeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1695:1: ( rule__Param_attribute__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1695:2: rule__Param_attribute__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_attribute__Alternatives_in_ruleparam_attribute3558);
            rule__Param_attribute__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_attributeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleparam_attribute"


    // $ANTLR start "rulefloat_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1707:1: rulefloat_type : ( ( 'float' ) ) ;
    public final void rulefloat_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1711:1: ( ( ( 'float' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1712:1: ( ( 'float' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1712:1: ( ( 'float' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1713:1: ( 'float' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFloat_typeAccess().getPK_FLOATEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1714:1: ( 'float' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1714:3: 'float'
            {
            match(input,16,FollowSets000.FOLLOW_16_in_rulefloat_type3595); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFloat_typeAccess().getPK_FLOATEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulefloat_type"


    // $ANTLR start "ruledouble_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1727:1: ruledouble_type : ( ( 'double' ) ) ;
    public final void ruledouble_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1731:1: ( ( ( 'double' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1732:1: ( ( 'double' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1732:1: ( ( 'double' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1733:1: ( 'double' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDouble_typeAccess().getPK_DOUBLEEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1734:1: ( 'double' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1734:3: 'double'
            {
            match(input,17,FollowSets000.FOLLOW_17_in_ruledouble_type3634); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getDouble_typeAccess().getPK_DOUBLEEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruledouble_type"


    // $ANTLR start "ruleshort_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1747:1: ruleshort_type : ( ( 'short' ) ) ;
    public final void ruleshort_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1751:1: ( ( ( 'short' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1752:1: ( ( 'short' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1752:1: ( ( 'short' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1753:1: ( 'short' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShort_typeAccess().getPK_SHORTEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1754:1: ( 'short' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1754:3: 'short'
            {
            match(input,18,FollowSets000.FOLLOW_18_in_ruleshort_type3673); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getShort_typeAccess().getPK_SHORTEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleshort_type"


    // $ANTLR start "rulelong_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1767:1: rulelong_type : ( ( 'long' ) ) ;
    public final void rulelong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1771:1: ( ( ( 'long' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1772:1: ( ( 'long' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1772:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1773:1: ( 'long' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLong_typeAccess().getPK_LONGEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1774:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1774:3: 'long'
            {
            match(input,19,FollowSets000.FOLLOW_19_in_rulelong_type3712); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLong_typeAccess().getPK_LONGEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulelong_type"


    // $ANTLR start "rulechar_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1787:1: rulechar_type : ( ( 'char' ) ) ;
    public final void rulechar_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1791:1: ( ( ( 'char' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1792:1: ( ( 'char' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1792:1: ( ( 'char' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1793:1: ( 'char' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getChar_typeAccess().getPK_CHAREnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1794:1: ( 'char' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1794:3: 'char'
            {
            match(input,20,FollowSets000.FOLLOW_20_in_rulechar_type3751); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getChar_typeAccess().getPK_CHAREnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulechar_type"


    // $ANTLR start "rulewide_char_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1807:1: rulewide_char_type : ( ( 'wchar' ) ) ;
    public final void rulewide_char_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1811:1: ( ( ( 'wchar' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1812:1: ( ( 'wchar' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1812:1: ( ( 'wchar' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1813:1: ( 'wchar' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_char_typeAccess().getPK_WCHAREnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1814:1: ( 'wchar' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1814:3: 'wchar'
            {
            match(input,21,FollowSets000.FOLLOW_21_in_rulewide_char_type3790); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_char_typeAccess().getPK_WCHAREnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulewide_char_type"


    // $ANTLR start "rulestring_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1827:1: rulestring_type : ( ( 'string' ) ) ;
    public final void rulestring_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1831:1: ( ( ( 'string' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1832:1: ( ( 'string' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1832:1: ( ( 'string' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1833:1: ( 'string' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getString_typeAccess().getPK_STRINGEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1834:1: ( 'string' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1834:3: 'string'
            {
            match(input,22,FollowSets000.FOLLOW_22_in_rulestring_type3829); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getString_typeAccess().getPK_STRINGEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulestring_type"


    // $ANTLR start "rulewide_string_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1847:1: rulewide_string_type : ( ( 'wstring' ) ) ;
    public final void rulewide_string_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1851:1: ( ( ( 'wstring' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1852:1: ( ( 'wstring' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1852:1: ( ( 'wstring' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1853:1: ( 'wstring' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_string_typeAccess().getPK_WSTRINGEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1854:1: ( 'wstring' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1854:3: 'wstring'
            {
            match(input,23,FollowSets000.FOLLOW_23_in_rulewide_string_type3868); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_string_typeAccess().getPK_WSTRINGEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulewide_string_type"


    // $ANTLR start "ruleboolean_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1867:1: ruleboolean_type : ( ( 'boolean' ) ) ;
    public final void ruleboolean_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1871:1: ( ( ( 'boolean' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1872:1: ( ( 'boolean' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1872:1: ( ( 'boolean' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1873:1: ( 'boolean' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBoolean_typeAccess().getPK_BOOLEANEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1874:1: ( 'boolean' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1874:3: 'boolean'
            {
            match(input,24,FollowSets000.FOLLOW_24_in_ruleboolean_type3907); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBoolean_typeAccess().getPK_BOOLEANEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleboolean_type"


    // $ANTLR start "ruleoctet_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1887:1: ruleoctet_type : ( ( 'octet' ) ) ;
    public final void ruleoctet_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1891:1: ( ( ( 'octet' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1892:1: ( ( 'octet' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1892:1: ( ( 'octet' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1893:1: ( 'octet' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOctet_typeAccess().getPK_OCTETEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1894:1: ( 'octet' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1894:3: 'octet'
            {
            match(input,25,FollowSets000.FOLLOW_25_in_ruleoctet_type3946); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOctet_typeAccess().getPK_OCTETEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleoctet_type"


    // $ANTLR start "ruleany_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1907:1: ruleany_type : ( ( 'any' ) ) ;
    public final void ruleany_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1911:1: ( ( ( 'any' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1912:1: ( ( 'any' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1912:1: ( ( 'any' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1913:1: ( 'any' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAny_typeAccess().getPK_ANYEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1914:1: ( 'any' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1914:3: 'any'
            {
            match(input,26,FollowSets000.FOLLOW_26_in_ruleany_type3985); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAny_typeAccess().getPK_ANYEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleany_type"


    // $ANTLR start "ruleobject_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1927:1: ruleobject_type : ( ( 'Object' ) ) ;
    public final void ruleobject_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1931:1: ( ( ( 'Object' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1932:1: ( ( 'Object' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1932:1: ( ( 'Object' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1933:1: ( 'Object' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getObject_typeAccess().getPK_OBJREFEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1934:1: ( 'Object' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1934:3: 'Object'
            {
            match(input,27,FollowSets000.FOLLOW_27_in_ruleobject_type4024); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getObject_typeAccess().getPK_OBJREFEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleobject_type"


    // $ANTLR start "rulevoid_type"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1947:1: rulevoid_type : ( ( 'void' ) ) ;
    public final void rulevoid_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1951:1: ( ( ( 'void' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1952:1: ( ( 'void' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1952:1: ( ( 'void' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1953:1: ( 'void' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getVoid_typeAccess().getPK_VOIDEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1954:1: ( 'void' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1954:3: 'void'
            {
            match(input,28,FollowSets000.FOLLOW_28_in_rulevoid_type4063); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getVoid_typeAccess().getPK_VOIDEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulevoid_type"


    // $ANTLR start "rule__Definition__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1966:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );
    public final void rule__Definition__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1970:1: ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) )
            int alt1=6;
            alt1 = dfa1.predict(input);
            switch (alt1) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1971:1: ( ( rule__Definition__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1971:1: ( ( rule__Definition__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1972:1: ( rule__Definition__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1973:1: ( rule__Definition__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1973:2: rule__Definition__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__0_in_rule__Definition__Alternatives4100);
                    rule__Definition__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1977:6: ( ( rule__Definition__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1977:6: ( ( rule__Definition__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1978:1: ( rule__Definition__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1979:1: ( rule__Definition__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1979:2: rule__Definition__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__0_in_rule__Definition__Alternatives4118);
                    rule__Definition__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1983:6: ( ( rule__Definition__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1983:6: ( ( rule__Definition__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1984:1: ( rule__Definition__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1985:1: ( rule__Definition__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1985:2: rule__Definition__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__0_in_rule__Definition__Alternatives4136);
                    rule__Definition__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1989:6: ( ( rule__Definition__Group_3__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1989:6: ( ( rule__Definition__Group_3__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1990:1: ( rule__Definition__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1991:1: ( rule__Definition__Group_3__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1991:2: rule__Definition__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__0_in_rule__Definition__Alternatives4154);
                    rule__Definition__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1995:6: ( ( rule__Definition__Group_4__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1995:6: ( ( rule__Definition__Group_4__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1996:1: ( rule__Definition__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1997:1: ( rule__Definition__Group_4__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1997:2: rule__Definition__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__0_in_rule__Definition__Alternatives4172);
                    rule__Definition__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2001:6: ( ( rule__Definition__Group_5__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2001:6: ( ( rule__Definition__Group_5__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2002:1: ( rule__Definition__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_5()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2003:1: ( rule__Definition__Group_5__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2003:2: rule__Definition__Group_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__0_in_rule__Definition__Alternatives4190);
                    rule__Definition__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Alternatives"


    // $ANTLR start "rule__Module__Alternatives_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2012:1: rule__Module__Alternatives_3 : ( ( ( rule__Module__ContainsAssignment_3_0 ) ) | ( ';' ) );
    public final void rule__Module__Alternatives_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2016:1: ( ( ( rule__Module__ContainsAssignment_3_0 ) ) | ( ';' ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( ((LA2_0>=30 && LA2_0<=31)||LA2_0==44||LA2_0==47||(LA2_0>=57 && LA2_0<=59)||(LA2_0>=62 && LA2_0<=63)||(LA2_0>=66 && LA2_0<=67)) ) {
                alt2=1;
            }
            else if ( (LA2_0==29) ) {
                alt2=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2017:1: ( ( rule__Module__ContainsAssignment_3_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2017:1: ( ( rule__Module__ContainsAssignment_3_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2018:1: ( rule__Module__ContainsAssignment_3_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getModuleAccess().getContainsAssignment_3_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2019:1: ( rule__Module__ContainsAssignment_3_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2019:2: rule__Module__ContainsAssignment_3_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Module__ContainsAssignment_3_0_in_rule__Module__Alternatives_34223);
                    rule__Module__ContainsAssignment_3_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getModuleAccess().getContainsAssignment_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2023:6: ( ';' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2023:6: ( ';' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2024:1: ';'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getModuleAccess().getSemicolonKeyword_3_1()); 
                    }
                    match(input,29,FollowSets000.FOLLOW_29_in_rule__Module__Alternatives_34242); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getModuleAccess().getSemicolonKeyword_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Alternatives_3"


    // $ANTLR start "rule__Interface_decl__Alternatives_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2036:1: rule__Interface_decl__Alternatives_0 : ( ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) ) | ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) ) );
    public final void rule__Interface_decl__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2040:1: ( ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) ) | ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==30) ) {
                alt3=1;
            }
            else if ( (LA3_0==31) ) {
                alt3=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2041:1: ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2041:1: ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2042:1: ( rule__Interface_decl__IsAbstractAssignment_0_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getIsAbstractAssignment_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2043:1: ( rule__Interface_decl__IsAbstractAssignment_0_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2043:2: rule__Interface_decl__IsAbstractAssignment_0_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__IsAbstractAssignment_0_0_in_rule__Interface_decl__Alternatives_04276);
                    rule__Interface_decl__IsAbstractAssignment_0_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getIsAbstractAssignment_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2047:6: ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2047:6: ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2048:1: ( rule__Interface_decl__IsCustomAssignment_0_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getIsCustomAssignment_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2049:1: ( rule__Interface_decl__IsCustomAssignment_0_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2049:2: rule__Interface_decl__IsCustomAssignment_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__IsCustomAssignment_0_1_in_rule__Interface_decl__Alternatives_04294);
                    rule__Interface_decl__IsCustomAssignment_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getIsCustomAssignment_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Alternatives_0"


    // $ANTLR start "rule__Interface_decl__Alternatives_5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2058:1: rule__Interface_decl__Alternatives_5 : ( ( ( rule__Interface_decl__ContainsAssignment_5_0 ) ) | ( ';' ) );
    public final void rule__Interface_decl__Alternatives_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2062:1: ( ( ( rule__Interface_decl__ContainsAssignment_5_0 ) ) | ( ';' ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==RULE_ID||(LA4_0>=16 && LA4_0<=28)||LA4_0==54||(LA4_0>=57 && LA4_0<=59)||(LA4_0>=62 && LA4_0<=63)||(LA4_0>=66 && LA4_0<=67)||(LA4_0>=73 && LA4_0<=75)) ) {
                alt4=1;
            }
            else if ( (LA4_0==29) ) {
                alt4=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2063:1: ( ( rule__Interface_decl__ContainsAssignment_5_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2063:1: ( ( rule__Interface_decl__ContainsAssignment_5_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2064:1: ( rule__Interface_decl__ContainsAssignment_5_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getContainsAssignment_5_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2065:1: ( rule__Interface_decl__ContainsAssignment_5_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2065:2: rule__Interface_decl__ContainsAssignment_5_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__ContainsAssignment_5_0_in_rule__Interface_decl__Alternatives_54327);
                    rule__Interface_decl__ContainsAssignment_5_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getContainsAssignment_5_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2069:6: ( ';' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2069:6: ( ';' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2070:1: ';'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getSemicolonKeyword_5_1()); 
                    }
                    match(input,29,FollowSets000.FOLLOW_29_in_rule__Interface_decl__Alternatives_54346); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getSemicolonKeyword_5_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Alternatives_5"


    // $ANTLR start "rule__Interface_fwd__Alternatives_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2082:1: rule__Interface_fwd__Alternatives_0 : ( ( 'abstract' ) | ( 'local' ) );
    public final void rule__Interface_fwd__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2086:1: ( ( 'abstract' ) | ( 'local' ) )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==30) ) {
                alt5=1;
            }
            else if ( (LA5_0==31) ) {
                alt5=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2087:1: ( 'abstract' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2087:1: ( 'abstract' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2088:1: 'abstract'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterface_fwdAccess().getAbstractKeyword_0_0()); 
                    }
                    match(input,30,FollowSets000.FOLLOW_30_in_rule__Interface_fwd__Alternatives_04381); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterface_fwdAccess().getAbstractKeyword_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2095:6: ( 'local' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2095:6: ( 'local' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2096:1: 'local'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInterface_fwdAccess().getLocalKeyword_0_1()); 
                    }
                    match(input,31,FollowSets000.FOLLOW_31_in_rule__Interface_fwd__Alternatives_04401); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInterface_fwdAccess().getLocalKeyword_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__Alternatives_0"


    // $ANTLR start "rule__Export__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2108:1: rule__Export__Alternatives : ( ( ( rule__Export__Group_0__0 ) ) | ( ( rule__Export__Group_1__0 ) ) | ( ( rule__Export__Group_2__0 ) ) | ( ( rule__Export__Group_3__0 ) ) | ( ( rule__Export__Group_4__0 ) ) );
    public final void rule__Export__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2112:1: ( ( ( rule__Export__Group_0__0 ) ) | ( ( rule__Export__Group_1__0 ) ) | ( ( rule__Export__Group_2__0 ) ) | ( ( rule__Export__Group_3__0 ) ) | ( ( rule__Export__Group_4__0 ) ) )
            int alt6=5;
            switch ( input.LA(1) ) {
            case 58:
            case 59:
            case 62:
            case 63:
            case 66:
                {
                alt6=1;
                }
                break;
            case 67:
                {
                alt6=2;
                }
                break;
            case 57:
                {
                alt6=3;
                }
                break;
            case 54:
            case 75:
                {
                alt6=4;
                }
                break;
            case RULE_ID:
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 22:
            case 23:
            case 24:
            case 25:
            case 26:
            case 27:
            case 28:
            case 73:
            case 74:
                {
                alt6=5;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2113:1: ( ( rule__Export__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2113:1: ( ( rule__Export__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2114:1: ( rule__Export__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2115:1: ( rule__Export__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2115:2: rule__Export__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__0_in_rule__Export__Alternatives4435);
                    rule__Export__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2119:6: ( ( rule__Export__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2119:6: ( ( rule__Export__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2120:1: ( rule__Export__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2121:1: ( rule__Export__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2121:2: rule__Export__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__0_in_rule__Export__Alternatives4453);
                    rule__Export__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2125:6: ( ( rule__Export__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2125:6: ( ( rule__Export__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2126:1: ( rule__Export__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2127:1: ( rule__Export__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2127:2: rule__Export__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__0_in_rule__Export__Alternatives4471);
                    rule__Export__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2131:6: ( ( rule__Export__Group_3__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2131:6: ( ( rule__Export__Group_3__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2132:1: ( rule__Export__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2133:1: ( rule__Export__Group_3__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2133:2: rule__Export__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__0_in_rule__Export__Alternatives4489);
                    rule__Export__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2137:6: ( ( rule__Export__Group_4__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2137:6: ( ( rule__Export__Group_4__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2138:1: ( rule__Export__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2139:1: ( rule__Export__Group_4__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2139:2: rule__Export__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__0_in_rule__Export__Alternatives4507);
                    rule__Export__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Alternatives"


    // $ANTLR start "rule__Op_decl__Alternatives_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2148:1: rule__Op_decl__Alternatives_1 : ( ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) ) );
    public final void rule__Op_decl__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2152:1: ( ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) ) )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( ((LA7_0>=16 && LA7_0<=28)||LA7_0==73) ) {
                alt7=1;
            }
            else if ( (LA7_0==RULE_ID) ) {
                alt7=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2153:1: ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2153:1: ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2154:1: ( rule__Op_decl__ContainedTypeAssignment_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOp_declAccess().getContainedTypeAssignment_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2155:1: ( rule__Op_decl__ContainedTypeAssignment_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2155:2: rule__Op_decl__ContainedTypeAssignment_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ContainedTypeAssignment_1_0_in_rule__Op_decl__Alternatives_14540);
                    rule__Op_decl__ContainedTypeAssignment_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOp_declAccess().getContainedTypeAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2159:6: ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2159:6: ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2160:1: ( rule__Op_decl__SharedTypeAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOp_declAccess().getSharedTypeAssignment_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2161:1: ( rule__Op_decl__SharedTypeAssignment_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2161:2: rule__Op_decl__SharedTypeAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__SharedTypeAssignment_1_1_in_rule__Op_decl__Alternatives_14558);
                    rule__Op_decl__SharedTypeAssignment_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOp_declAccess().getSharedTypeAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Alternatives_1"


    // $ANTLR start "rule__Op_type_spec__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2170:1: rule__Op_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ( rule__Op_type_spec__Group_1__0 ) ) );
    public final void rule__Op_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2174:1: ( ( rulebase_type_spec ) | ( ( rule__Op_type_spec__Group_1__0 ) ) )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( ((LA8_0>=16 && LA8_0<=27)||LA8_0==73) ) {
                alt8=1;
            }
            else if ( (LA8_0==28) ) {
                alt8=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2175:1: ( rulebase_type_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2175:1: ( rulebase_type_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2176:1: rulebase_type_spec
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOp_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Op_type_spec__Alternatives4591);
                    rulebase_type_spec();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOp_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2181:6: ( ( rule__Op_type_spec__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2181:6: ( ( rule__Op_type_spec__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2182:1: ( rule__Op_type_spec__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOp_type_specAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2183:1: ( rule__Op_type_spec__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2183:2: rule__Op_type_spec__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__0_in_rule__Op_type_spec__Alternatives4608);
                    rule__Op_type_spec__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOp_type_specAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_type_spec__Alternatives"


    // $ANTLR start "rule__Param_decl__Alternatives_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2192:1: rule__Param_decl__Alternatives_1 : ( ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) ) );
    public final void rule__Param_decl__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2196:1: ( ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( ((LA9_0>=16 && LA9_0<=27)||LA9_0==73) ) {
                alt9=1;
            }
            else if ( (LA9_0==RULE_ID) ) {
                alt9=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2197:1: ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2197:1: ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2198:1: ( rule__Param_decl__ContainedTypeAssignment_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getParam_declAccess().getContainedTypeAssignment_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2199:1: ( rule__Param_decl__ContainedTypeAssignment_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2199:2: rule__Param_decl__ContainedTypeAssignment_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Param_decl__ContainedTypeAssignment_1_0_in_rule__Param_decl__Alternatives_14641);
                    rule__Param_decl__ContainedTypeAssignment_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getParam_declAccess().getContainedTypeAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2203:6: ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2203:6: ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2204:1: ( rule__Param_decl__SharedTypeAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getParam_declAccess().getSharedTypeAssignment_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2205:1: ( rule__Param_decl__SharedTypeAssignment_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2205:2: rule__Param_decl__SharedTypeAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Param_decl__SharedTypeAssignment_1_1_in_rule__Param_decl__Alternatives_14659);
                    rule__Param_decl__SharedTypeAssignment_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getParam_declAccess().getSharedTypeAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__Alternatives_1"


    // $ANTLR start "rule__Attr_decl__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2214:1: rule__Attr_decl__Alternatives : ( ( rulereadonly_attr_spec ) | ( ruleattr_spec ) );
    public final void rule__Attr_decl__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2218:1: ( ( rulereadonly_attr_spec ) | ( ruleattr_spec ) )
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==75) ) {
                alt10=1;
            }
            else if ( (LA10_0==54) ) {
                alt10=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2219:1: ( rulereadonly_attr_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2219:1: ( rulereadonly_attr_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2220:1: rulereadonly_attr_spec
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_declAccess().getReadonly_attr_specParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulereadonly_attr_spec_in_rule__Attr_decl__Alternatives4692);
                    rulereadonly_attr_spec();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_declAccess().getReadonly_attr_specParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2225:6: ( ruleattr_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2225:6: ( ruleattr_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2226:1: ruleattr_spec
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_declAccess().getAttr_specParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleattr_spec_in_rule__Attr_decl__Alternatives4709);
                    ruleattr_spec();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_declAccess().getAttr_specParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_decl__Alternatives"


    // $ANTLR start "rule__Readonly_attr_spec__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2236:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );
    public final void rule__Readonly_attr_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2240:1: ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) )
            int alt11=2;
            alt11 = dfa11.predict(input);
            switch (alt11) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2241:1: ( ( rule__Readonly_attr_spec__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2241:1: ( ( rule__Readonly_attr_spec__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2242:1: ( rule__Readonly_attr_spec__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2243:1: ( rule__Readonly_attr_spec__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2243:2: rule__Readonly_attr_spec__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__0_in_rule__Readonly_attr_spec__Alternatives4741);
                    rule__Readonly_attr_spec__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2247:6: ( ( rule__Readonly_attr_spec__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2247:6: ( ( rule__Readonly_attr_spec__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2248:1: ( rule__Readonly_attr_spec__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2249:1: ( rule__Readonly_attr_spec__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2249:2: rule__Readonly_attr_spec__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__0_in_rule__Readonly_attr_spec__Alternatives4759);
                    rule__Readonly_attr_spec__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Alternatives"


    // $ANTLR start "rule__Readonly_attr_spec__Alternatives_0_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2258:1: rule__Readonly_attr_spec__Alternatives_0_2 : ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) ) );
    public final void rule__Readonly_attr_spec__Alternatives_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2262:1: ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) ) )
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( ((LA12_0>=16 && LA12_0<=27)||LA12_0==73) ) {
                alt12=1;
            }
            else if ( (LA12_0==RULE_ID) ) {
                alt12=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;
            }
            switch (alt12) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2263:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2263:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2264:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_0_2_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2265:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2265:2: rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0_in_rule__Readonly_attr_spec__Alternatives_0_24792);
                    rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_0_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2269:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2269:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2270:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_0_2_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2271:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2271:2: rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1_in_rule__Readonly_attr_spec__Alternatives_0_24810);
                    rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_0_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Alternatives_0_2"


    // $ANTLR start "rule__Readonly_attr_spec__Alternatives_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2280:1: rule__Readonly_attr_spec__Alternatives_1_2 : ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) ) );
    public final void rule__Readonly_attr_spec__Alternatives_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2284:1: ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) ) )
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( ((LA13_0>=16 && LA13_0<=27)||LA13_0==73) ) {
                alt13=1;
            }
            else if ( (LA13_0==RULE_ID) ) {
                alt13=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 13, 0, input);

                throw nvae;
            }
            switch (alt13) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2285:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2285:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2286:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_1_2_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2287:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2287:2: rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0_in_rule__Readonly_attr_spec__Alternatives_1_24843);
                    rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_1_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2291:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2291:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2292:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_1_2_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2293:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2293:2: rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1_in_rule__Readonly_attr_spec__Alternatives_1_24861);
                    rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_1_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Alternatives_1_2"


    // $ANTLR start "rule__Attr_spec__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2302:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );
    public final void rule__Attr_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2306:1: ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) )
            int alt14=2;
            alt14 = dfa14.predict(input);
            switch (alt14) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2307:1: ( ( rule__Attr_spec__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2307:1: ( ( rule__Attr_spec__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2308:1: ( rule__Attr_spec__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2309:1: ( rule__Attr_spec__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2309:2: rule__Attr_spec__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__0_in_rule__Attr_spec__Alternatives4894);
                    rule__Attr_spec__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2313:6: ( ( rule__Attr_spec__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2313:6: ( ( rule__Attr_spec__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2314:1: ( rule__Attr_spec__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2315:1: ( rule__Attr_spec__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2315:2: rule__Attr_spec__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__0_in_rule__Attr_spec__Alternatives4912);
                    rule__Attr_spec__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Alternatives"


    // $ANTLR start "rule__Attr_spec__Alternatives_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2324:1: rule__Attr_spec__Alternatives_0_1 : ( ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) ) );
    public final void rule__Attr_spec__Alternatives_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2328:1: ( ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) ) )
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( ((LA15_0>=16 && LA15_0<=27)||LA15_0==73) ) {
                alt15=1;
            }
            else if ( (LA15_0==RULE_ID) ) {
                alt15=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;
            }
            switch (alt15) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2329:1: ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2329:1: ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2330:1: ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_0_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2331:1: ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2331:2: rule__Attr_spec__ContainedTypeAssignment_0_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__ContainedTypeAssignment_0_1_0_in_rule__Attr_spec__Alternatives_0_14945);
                    rule__Attr_spec__ContainedTypeAssignment_0_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_0_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2335:6: ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2335:6: ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2336:1: ( rule__Attr_spec__SharedTypeAssignment_0_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_0_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2337:1: ( rule__Attr_spec__SharedTypeAssignment_0_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2337:2: rule__Attr_spec__SharedTypeAssignment_0_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SharedTypeAssignment_0_1_1_in_rule__Attr_spec__Alternatives_0_14963);
                    rule__Attr_spec__SharedTypeAssignment_0_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_0_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Alternatives_0_1"


    // $ANTLR start "rule__Attr_spec__Alternatives_0_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2346:1: rule__Attr_spec__Alternatives_0_3 : ( ( ( rule__Attr_spec__Group_0_3_0__0 ) ) | ( ( rule__Attr_spec__Group_0_3_1__0 ) ) );
    public final void rule__Attr_spec__Alternatives_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2350:1: ( ( ( rule__Attr_spec__Group_0_3_0__0 ) ) | ( ( rule__Attr_spec__Group_0_3_1__0 ) ) )
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==55) ) {
                alt16=1;
            }
            else if ( (LA16_0==56) ) {
                alt16=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }
            switch (alt16) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2351:1: ( ( rule__Attr_spec__Group_0_3_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2351:1: ( ( rule__Attr_spec__Group_0_3_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2352:1: ( rule__Attr_spec__Group_0_3_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_0_3_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2353:1: ( rule__Attr_spec__Group_0_3_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2353:2: rule__Attr_spec__Group_0_3_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__0_in_rule__Attr_spec__Alternatives_0_34996);
                    rule__Attr_spec__Group_0_3_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_0_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2357:6: ( ( rule__Attr_spec__Group_0_3_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2357:6: ( ( rule__Attr_spec__Group_0_3_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2358:1: ( rule__Attr_spec__Group_0_3_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_0_3_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2359:1: ( rule__Attr_spec__Group_0_3_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2359:2: rule__Attr_spec__Group_0_3_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__0_in_rule__Attr_spec__Alternatives_0_35014);
                    rule__Attr_spec__Group_0_3_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_0_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Alternatives_0_3"


    // $ANTLR start "rule__Attr_spec__Alternatives_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2368:1: rule__Attr_spec__Alternatives_1_1 : ( ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) ) );
    public final void rule__Attr_spec__Alternatives_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2372:1: ( ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) ) )
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( ((LA17_0>=16 && LA17_0<=27)||LA17_0==73) ) {
                alt17=1;
            }
            else if ( (LA17_0==RULE_ID) ) {
                alt17=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 17, 0, input);

                throw nvae;
            }
            switch (alt17) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2373:1: ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2373:1: ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2374:1: ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_1_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2375:1: ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2375:2: rule__Attr_spec__ContainedTypeAssignment_1_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__ContainedTypeAssignment_1_1_0_in_rule__Attr_spec__Alternatives_1_15047);
                    rule__Attr_spec__ContainedTypeAssignment_1_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2379:6: ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2379:6: ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2380:1: ( rule__Attr_spec__SharedTypeAssignment_1_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_1_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2381:1: ( rule__Attr_spec__SharedTypeAssignment_1_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2381:2: rule__Attr_spec__SharedTypeAssignment_1_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SharedTypeAssignment_1_1_1_in_rule__Attr_spec__Alternatives_1_15065);
                    rule__Attr_spec__SharedTypeAssignment_1_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_1_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Alternatives_1_1"


    // $ANTLR start "rule__Type_decl__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2390:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );
    public final void rule__Type_decl__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2394:1: ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) )
            int alt18=6;
            alt18 = dfa18.predict(input);
            switch (alt18) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2395:1: ( rulealias_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2395:1: ( rulealias_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2396:1: rulealias_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getAlias_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulealias_type_in_rule__Type_decl__Alternatives5098);
                    rulealias_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getAlias_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2401:6: ( rulestruct_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2401:6: ( rulestruct_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2402:1: rulestruct_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getStruct_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulestruct_type_in_rule__Type_decl__Alternatives5115);
                    rulestruct_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getStruct_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2407:6: ( ruleunion_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2407:6: ( ruleunion_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2408:1: ruleunion_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getUnion_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleunion_type_in_rule__Type_decl__Alternatives5132);
                    ruleunion_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getUnion_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2413:6: ( ruleenum_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2413:6: ( ruleenum_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2414:1: ruleenum_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getEnum_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleenum_type_in_rule__Type_decl__Alternatives5149);
                    ruleenum_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getEnum_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2419:6: ( ( rule__Type_decl__Group_4__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2419:6: ( ( rule__Type_decl__Group_4__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2420:1: ( rule__Type_decl__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getGroup_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2421:1: ( rule__Type_decl__Group_4__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2421:2: rule__Type_decl__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__0_in_rule__Type_decl__Alternatives5166);
                    rule__Type_decl__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2425:6: ( ruleconstr_forward_decl )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2425:6: ( ruleconstr_forward_decl )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2426:1: ruleconstr_forward_decl
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getConstr_forward_declParserRuleCall_5()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleconstr_forward_decl_in_rule__Type_decl__Alternatives5184);
                    ruleconstr_forward_decl();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getConstr_forward_declParserRuleCall_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type_decl__Alternatives"


    // $ANTLR start "rule__Alias_type__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2436:1: rule__Alias_type__Alternatives : ( ( ( rule__Alias_type__Group_0__0 ) ) | ( ( rule__Alias_type__Group_1__0 ) ) );
    public final void rule__Alias_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2440:1: ( ( ( rule__Alias_type__Group_0__0 ) ) | ( ( rule__Alias_type__Group_1__0 ) ) )
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==59) ) {
                int LA19_1 = input.LA(2);

                if ( (synpred30_InternalIDL()) ) {
                    alt19=1;
                }
                else if ( (true) ) {
                    alt19=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 19, 1, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 19, 0, input);

                throw nvae;
            }
            switch (alt19) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2441:1: ( ( rule__Alias_type__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2441:1: ( ( rule__Alias_type__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2442:1: ( rule__Alias_type__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2443:1: ( rule__Alias_type__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2443:2: rule__Alias_type__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__0_in_rule__Alias_type__Alternatives5216);
                    rule__Alias_type__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2447:6: ( ( rule__Alias_type__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2447:6: ( ( rule__Alias_type__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2448:1: ( rule__Alias_type__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2449:1: ( rule__Alias_type__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2449:2: rule__Alias_type__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__0_in_rule__Alias_type__Alternatives5234);
                    rule__Alias_type__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Alternatives"


    // $ANTLR start "rule__Alias_type__Alternatives_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2458:1: rule__Alias_type__Alternatives_1_1 : ( ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) ) );
    public final void rule__Alias_type__Alternatives_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2462:1: ( ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) ) )
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( ((LA20_0>=16 && LA20_0<=27)||LA20_0==69||(LA20_0>=72 && LA20_0<=73)) ) {
                alt20=1;
            }
            else if ( (LA20_0==RULE_ID) ) {
                alt20=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 20, 0, input);

                throw nvae;
            }
            switch (alt20) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2463:1: ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2463:1: ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2464:1: ( rule__Alias_type__ContainedTypeAssignment_1_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_1_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2465:1: ( rule__Alias_type__ContainedTypeAssignment_1_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2465:2: rule__Alias_type__ContainedTypeAssignment_1_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__ContainedTypeAssignment_1_1_0_in_rule__Alias_type__Alternatives_1_15267);
                    rule__Alias_type__ContainedTypeAssignment_1_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2469:6: ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2469:6: ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2470:1: ( rule__Alias_type__SharedTypeAssignment_1_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getSharedTypeAssignment_1_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2471:1: ( rule__Alias_type__SharedTypeAssignment_1_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2471:2: rule__Alias_type__SharedTypeAssignment_1_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__SharedTypeAssignment_1_1_1_in_rule__Alias_type__Alternatives_1_15285);
                    rule__Alias_type__SharedTypeAssignment_1_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getSharedTypeAssignment_1_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Alternatives_1_1"


    // $ANTLR start "rule__Array_type_spec__Alternatives_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2480:1: rule__Array_type_spec__Alternatives_0 : ( ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) ) | ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) ) );
    public final void rule__Array_type_spec__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2484:1: ( ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) ) | ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) ) )
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( ((LA21_0>=16 && LA21_0<=27)||LA21_0==69||(LA21_0>=72 && LA21_0<=73)) ) {
                alt21=1;
            }
            else if ( (LA21_0==RULE_ID) ) {
                alt21=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 21, 0, input);

                throw nvae;
            }
            switch (alt21) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2485:1: ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2485:1: ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2486:1: ( rule__Array_type_spec__ContainedTypeAssignment_0_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getArray_type_specAccess().getContainedTypeAssignment_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2487:1: ( rule__Array_type_spec__ContainedTypeAssignment_0_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2487:2: rule__Array_type_spec__ContainedTypeAssignment_0_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__ContainedTypeAssignment_0_0_in_rule__Array_type_spec__Alternatives_05318);
                    rule__Array_type_spec__ContainedTypeAssignment_0_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getArray_type_specAccess().getContainedTypeAssignment_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2491:6: ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2491:6: ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2492:1: ( rule__Array_type_spec__SharedTypeAssignment_0_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getArray_type_specAccess().getSharedTypeAssignment_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2493:1: ( rule__Array_type_spec__SharedTypeAssignment_0_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2493:2: rule__Array_type_spec__SharedTypeAssignment_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__SharedTypeAssignment_0_1_in_rule__Array_type_spec__Alternatives_05336);
                    rule__Array_type_spec__SharedTypeAssignment_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getArray_type_specAccess().getSharedTypeAssignment_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Alternatives_0"


    // $ANTLR start "rule__Simple_type_spec__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2502:1: rule__Simple_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ruletemplate_type_spec ) );
    public final void rule__Simple_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2506:1: ( ( rulebase_type_spec ) | ( ruletemplate_type_spec ) )
            int alt22=2;
            switch ( input.LA(1) ) {
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 24:
            case 25:
            case 26:
            case 27:
            case 73:
                {
                alt22=1;
                }
                break;
            case 22:
                {
                int LA22_2 = input.LA(2);

                if ( (LA22_2==70) ) {
                    alt22=2;
                }
                else if ( (LA22_2==EOF||LA22_2==RULE_ID||LA22_2==49||LA22_2==71) ) {
                    alt22=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 22, 2, input);

                    throw nvae;
                }
                }
                break;
            case 23:
                {
                int LA22_3 = input.LA(2);

                if ( (LA22_3==EOF||LA22_3==RULE_ID||LA22_3==49||LA22_3==71) ) {
                    alt22=1;
                }
                else if ( (LA22_3==70) ) {
                    alt22=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 22, 3, input);

                    throw nvae;
                }
                }
                break;
            case 69:
            case 72:
                {
                alt22=2;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;
            }

            switch (alt22) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2507:1: ( rulebase_type_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2507:1: ( rulebase_type_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2508:1: rulebase_type_spec
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSimple_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Simple_type_spec__Alternatives5369);
                    rulebase_type_spec();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSimple_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2513:6: ( ruletemplate_type_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2513:6: ( ruletemplate_type_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2514:1: ruletemplate_type_spec
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSimple_type_specAccess().getTemplate_type_specParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruletemplate_type_spec_in_rule__Simple_type_spec__Alternatives5386);
                    ruletemplate_type_spec();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSimple_type_specAccess().getTemplate_type_specParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Simple_type_spec__Alternatives"


    // $ANTLR start "rule__Base_type_spec__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2524:1: rule__Base_type_spec__Alternatives : ( ( ruleprimitive_def ) | ( ( rule__Base_type_spec__KindAssignment_1 ) ) );
    public final void rule__Base_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2528:1: ( ( ruleprimitive_def ) | ( ( rule__Base_type_spec__KindAssignment_1 ) ) )
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( ((LA23_0>=16 && LA23_0<=26)||LA23_0==73) ) {
                alt23=1;
            }
            else if ( (LA23_0==27) ) {
                alt23=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }
            switch (alt23) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2529:1: ( ruleprimitive_def )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2529:1: ( ruleprimitive_def )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2530:1: ruleprimitive_def
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBase_type_specAccess().getPrimitive_defParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleprimitive_def_in_rule__Base_type_spec__Alternatives5418);
                    ruleprimitive_def();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBase_type_specAccess().getPrimitive_defParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2535:6: ( ( rule__Base_type_spec__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2535:6: ( ( rule__Base_type_spec__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2536:1: ( rule__Base_type_spec__KindAssignment_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBase_type_specAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2537:1: ( rule__Base_type_spec__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2537:2: rule__Base_type_spec__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Base_type_spec__KindAssignment_1_in_rule__Base_type_spec__Alternatives5435);
                    rule__Base_type_spec__KindAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBase_type_specAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Base_type_spec__Alternatives"


    // $ANTLR start "rule__Template_type_spec__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2546:1: rule__Template_type_spec__Alternatives : ( ( rulesequence_type ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_type ) );
    public final void rule__Template_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2550:1: ( ( rulesequence_type ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_type ) )
            int alt24=4;
            switch ( input.LA(1) ) {
            case 69:
                {
                alt24=1;
                }
                break;
            case 22:
                {
                alt24=2;
                }
                break;
            case 23:
                {
                alt24=3;
                }
                break;
            case 72:
                {
                alt24=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 24, 0, input);

                throw nvae;
            }

            switch (alt24) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2551:1: ( rulesequence_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2551:1: ( rulesequence_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2552:1: rulesequence_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getSequence_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulesequence_type_in_rule__Template_type_spec__Alternatives5468);
                    rulesequence_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getSequence_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2557:6: ( rulestringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2557:6: ( rulestringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2558:1: rulestringdef_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getStringdef_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulestringdef_type_in_rule__Template_type_spec__Alternatives5485);
                    rulestringdef_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getStringdef_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2563:6: ( rulewide_stringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2563:6: ( rulewide_stringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2564:1: rulewide_stringdef_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulewide_stringdef_type_in_rule__Template_type_spec__Alternatives5502);
                    rulewide_stringdef_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2569:6: ( rulefixed_pt_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2569:6: ( rulefixed_pt_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2570:1: rulefixed_pt_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getFixed_pt_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulefixed_pt_type_in_rule__Template_type_spec__Alternatives5519);
                    rulefixed_pt_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getFixed_pt_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Template_type_spec__Alternatives"


    // $ANTLR start "rule__Member__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2581:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );
    public final void rule__Member__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2585:1: ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) )
            int alt25=4;
            alt25 = dfa25.predict(input);
            switch (alt25) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2586:1: ( ( rule__Member__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2586:1: ( ( rule__Member__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2587:1: ( rule__Member__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2588:1: ( rule__Member__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2588:2: rule__Member__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__0_in_rule__Member__Alternatives5552);
                    rule__Member__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2592:6: ( ( rule__Member__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2592:6: ( ( rule__Member__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2593:1: ( rule__Member__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2594:1: ( rule__Member__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2594:2: rule__Member__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__0_in_rule__Member__Alternatives5570);
                    rule__Member__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2598:6: ( ( rule__Member__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2598:6: ( ( rule__Member__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2599:1: ( rule__Member__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2600:1: ( rule__Member__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2600:2: rule__Member__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__0_in_rule__Member__Alternatives5588);
                    rule__Member__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2604:6: ( ( rule__Member__Group_3__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2604:6: ( ( rule__Member__Group_3__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2605:1: ( rule__Member__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2606:1: ( rule__Member__Group_3__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2606:2: rule__Member__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__0_in_rule__Member__Alternatives5606);
                    rule__Member__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Alternatives"


    // $ANTLR start "rule__Union_type__Alternatives_4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2615:1: rule__Union_type__Alternatives_4 : ( ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) ) | ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) ) );
    public final void rule__Union_type__Alternatives_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2619:1: ( ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) ) | ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) ) )
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( ((LA26_0>=18 && LA26_0<=20)||LA26_0==24||LA26_0==66||LA26_0==73) ) {
                alt26=1;
            }
            else if ( (LA26_0==RULE_ID) ) {
                alt26=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 26, 0, input);

                throw nvae;
            }
            switch (alt26) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2620:1: ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2620:1: ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2621:1: ( rule__Union_type__ContainedDiscrimAssignment_4_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnion_typeAccess().getContainedDiscrimAssignment_4_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2622:1: ( rule__Union_type__ContainedDiscrimAssignment_4_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2622:2: rule__Union_type__ContainedDiscrimAssignment_4_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Union_type__ContainedDiscrimAssignment_4_0_in_rule__Union_type__Alternatives_45639);
                    rule__Union_type__ContainedDiscrimAssignment_4_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnion_typeAccess().getContainedDiscrimAssignment_4_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2626:6: ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2626:6: ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2627:1: ( rule__Union_type__SharedDiscrimAssignment_4_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnion_typeAccess().getSharedDiscrimAssignment_4_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2628:1: ( rule__Union_type__SharedDiscrimAssignment_4_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2628:2: rule__Union_type__SharedDiscrimAssignment_4_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Union_type__SharedDiscrimAssignment_4_1_in_rule__Union_type__Alternatives_45657);
                    rule__Union_type__SharedDiscrimAssignment_4_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnion_typeAccess().getSharedDiscrimAssignment_4_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Alternatives_4"


    // $ANTLR start "rule__Switch_type_spec_cont__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2637:1: rule__Switch_type_spec_cont__Alternatives : ( ( ruleinteger_type ) | ( ( rule__Switch_type_spec_cont__Group_1__0 ) ) | ( ( rule__Switch_type_spec_cont__Group_2__0 ) ) | ( ruleenum_type ) );
    public final void rule__Switch_type_spec_cont__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2641:1: ( ( ruleinteger_type ) | ( ( rule__Switch_type_spec_cont__Group_1__0 ) ) | ( ( rule__Switch_type_spec_cont__Group_2__0 ) ) | ( ruleenum_type ) )
            int alt27=4;
            switch ( input.LA(1) ) {
            case 18:
            case 19:
            case 73:
                {
                alt27=1;
                }
                break;
            case 20:
                {
                alt27=2;
                }
                break;
            case 24:
                {
                alt27=3;
                }
                break;
            case 66:
                {
                alt27=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 27, 0, input);

                throw nvae;
            }

            switch (alt27) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2642:1: ( ruleinteger_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2642:1: ( ruleinteger_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2643:1: ruleinteger_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getInteger_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleinteger_type_in_rule__Switch_type_spec_cont__Alternatives5690);
                    ruleinteger_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getInteger_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2648:6: ( ( rule__Switch_type_spec_cont__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2648:6: ( ( rule__Switch_type_spec_cont__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2649:1: ( rule__Switch_type_spec_cont__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2650:1: ( rule__Switch_type_spec_cont__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2650:2: rule__Switch_type_spec_cont__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__0_in_rule__Switch_type_spec_cont__Alternatives5707);
                    rule__Switch_type_spec_cont__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2654:6: ( ( rule__Switch_type_spec_cont__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2654:6: ( ( rule__Switch_type_spec_cont__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2655:1: ( rule__Switch_type_spec_cont__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2656:1: ( rule__Switch_type_spec_cont__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2656:2: rule__Switch_type_spec_cont__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__0_in_rule__Switch_type_spec_cont__Alternatives5725);
                    rule__Switch_type_spec_cont__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2660:6: ( ruleenum_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2660:6: ( ruleenum_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2661:1: ruleenum_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getEnum_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleenum_type_in_rule__Switch_type_spec_cont__Alternatives5743);
                    ruleenum_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getEnum_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Alternatives"


    // $ANTLR start "rule__Case_stmt__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2671:1: rule__Case_stmt__Alternatives : ( ( ( rule__Case_stmt__Group_0__0 ) ) | ( ( rule__Case_stmt__Group_1__0 ) ) );
    public final void rule__Case_stmt__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2675:1: ( ( ( rule__Case_stmt__Group_0__0 ) ) | ( ( rule__Case_stmt__Group_1__0 ) ) )
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( (LA28_0==65) ) {
                int LA28_1 = input.LA(2);

                if ( (synpred45_InternalIDL()) ) {
                    alt28=1;
                }
                else if ( (true) ) {
                    alt28=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 28, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA28_0==76) ) {
                int LA28_2 = input.LA(2);

                if ( (synpred45_InternalIDL()) ) {
                    alt28=1;
                }
                else if ( (true) ) {
                    alt28=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 28, 2, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 28, 0, input);

                throw nvae;
            }
            switch (alt28) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2676:1: ( ( rule__Case_stmt__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2676:1: ( ( rule__Case_stmt__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2677:1: ( rule__Case_stmt__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2678:1: ( rule__Case_stmt__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2678:2: rule__Case_stmt__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__0_in_rule__Case_stmt__Alternatives5775);
                    rule__Case_stmt__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2682:6: ( ( rule__Case_stmt__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2682:6: ( ( rule__Case_stmt__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2683:1: ( rule__Case_stmt__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2684:1: ( rule__Case_stmt__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2684:2: rule__Case_stmt__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__0_in_rule__Case_stmt__Alternatives5793);
                    rule__Case_stmt__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Alternatives"


    // $ANTLR start "rule__Case_stmt__Alternatives_0_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2693:1: rule__Case_stmt__Alternatives_0_0 : ( ( ( rule__Case_stmt__Group_0_0_0__0 ) ) | ( ( rule__Case_stmt__Group_0_0_1__0 ) ) );
    public final void rule__Case_stmt__Alternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2697:1: ( ( ( rule__Case_stmt__Group_0_0_0__0 ) ) | ( ( rule__Case_stmt__Group_0_0_1__0 ) ) )
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==65) ) {
                alt29=1;
            }
            else if ( (LA29_0==76) ) {
                alt29=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 29, 0, input);

                throw nvae;
            }
            switch (alt29) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2698:1: ( ( rule__Case_stmt__Group_0_0_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2698:1: ( ( rule__Case_stmt__Group_0_0_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2699:1: ( rule__Case_stmt__Group_0_0_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_0_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2700:1: ( rule__Case_stmt__Group_0_0_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2700:2: rule__Case_stmt__Group_0_0_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__0_in_rule__Case_stmt__Alternatives_0_05826);
                    rule__Case_stmt__Group_0_0_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2704:6: ( ( rule__Case_stmt__Group_0_0_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2704:6: ( ( rule__Case_stmt__Group_0_0_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2705:1: ( rule__Case_stmt__Group_0_0_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_0_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2706:1: ( rule__Case_stmt__Group_0_0_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2706:2: rule__Case_stmt__Group_0_0_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__0_in_rule__Case_stmt__Alternatives_0_05844);
                    rule__Case_stmt__Group_0_0_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Alternatives_0_0"


    // $ANTLR start "rule__Case_stmt__Alternatives_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2715:1: rule__Case_stmt__Alternatives_1_0 : ( ( ( rule__Case_stmt__Group_1_0_0__0 ) ) | ( ( rule__Case_stmt__Group_1_0_1__0 ) ) );
    public final void rule__Case_stmt__Alternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2719:1: ( ( ( rule__Case_stmt__Group_1_0_0__0 ) ) | ( ( rule__Case_stmt__Group_1_0_1__0 ) ) )
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==65) ) {
                alt30=1;
            }
            else if ( (LA30_0==76) ) {
                alt30=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 30, 0, input);

                throw nvae;
            }
            switch (alt30) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2720:1: ( ( rule__Case_stmt__Group_1_0_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2720:1: ( ( rule__Case_stmt__Group_1_0_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2721:1: ( rule__Case_stmt__Group_1_0_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_1_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2722:1: ( rule__Case_stmt__Group_1_0_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2722:2: rule__Case_stmt__Group_1_0_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__0_in_rule__Case_stmt__Alternatives_1_05877);
                    rule__Case_stmt__Group_1_0_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2726:6: ( ( rule__Case_stmt__Group_1_0_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2726:6: ( ( rule__Case_stmt__Group_1_0_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2727:1: ( rule__Case_stmt__Group_1_0_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_1_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2728:1: ( rule__Case_stmt__Group_1_0_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2728:2: rule__Case_stmt__Group_1_0_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__0_in_rule__Case_stmt__Alternatives_1_05895);
                    rule__Case_stmt__Group_1_0_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Alternatives_1_0"


    // $ANTLR start "rule__Case_stmt__Alternatives_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2737:1: rule__Case_stmt__Alternatives_1_1 : ( ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) ) );
    public final void rule__Case_stmt__Alternatives_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2741:1: ( ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) ) )
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( ((LA31_0>=16 && LA31_0<=27)||LA31_0==69||(LA31_0>=72 && LA31_0<=73)) ) {
                alt31=1;
            }
            else if ( (LA31_0==RULE_ID) ) {
                alt31=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 31, 0, input);

                throw nvae;
            }
            switch (alt31) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2742:1: ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2742:1: ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2743:1: ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_1_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2744:1: ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2744:2: rule__Case_stmt__ContainedTypeAssignment_1_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__ContainedTypeAssignment_1_1_0_in_rule__Case_stmt__Alternatives_1_15928);
                    rule__Case_stmt__ContainedTypeAssignment_1_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2748:6: ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2748:6: ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2749:1: ( rule__Case_stmt__SharedTypeAssignment_1_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getSharedTypeAssignment_1_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2750:1: ( rule__Case_stmt__SharedTypeAssignment_1_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2750:2: rule__Case_stmt__SharedTypeAssignment_1_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__SharedTypeAssignment_1_1_1_in_rule__Case_stmt__Alternatives_1_15946);
                    rule__Case_stmt__SharedTypeAssignment_1_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getSharedTypeAssignment_1_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Alternatives_1_1"


    // $ANTLR start "rule__Constr_forward_decl__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2759:1: rule__Constr_forward_decl__Alternatives : ( ( ( rule__Constr_forward_decl__Group_0__0 ) ) | ( ( rule__Constr_forward_decl__Group_1__0 ) ) );
    public final void rule__Constr_forward_decl__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2763:1: ( ( ( rule__Constr_forward_decl__Group_0__0 ) ) | ( ( rule__Constr_forward_decl__Group_1__0 ) ) )
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==62) ) {
                alt32=1;
            }
            else if ( (LA32_0==63) ) {
                alt32=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }
            switch (alt32) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2764:1: ( ( rule__Constr_forward_decl__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2764:1: ( ( rule__Constr_forward_decl__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2765:1: ( rule__Constr_forward_decl__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConstr_forward_declAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2766:1: ( rule__Constr_forward_decl__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2766:2: rule__Constr_forward_decl__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__0_in_rule__Constr_forward_decl__Alternatives5979);
                    rule__Constr_forward_decl__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConstr_forward_declAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2770:6: ( ( rule__Constr_forward_decl__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2770:6: ( ( rule__Constr_forward_decl__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2771:1: ( rule__Constr_forward_decl__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConstr_forward_declAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2772:1: ( rule__Constr_forward_decl__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2772:2: rule__Constr_forward_decl__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__0_in_rule__Constr_forward_decl__Alternatives5997);
                    rule__Constr_forward_decl__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConstr_forward_declAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Alternatives"


    // $ANTLR start "rule__Const_decl__Alternatives_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2781:1: rule__Const_decl__Alternatives_1 : ( ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) ) );
    public final void rule__Const_decl__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2785:1: ( ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) ) )
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( ((LA33_0>=16 && LA33_0<=26)||(LA33_0>=72 && LA33_0<=73)) ) {
                alt33=1;
            }
            else if ( (LA33_0==RULE_ID) ) {
                alt33=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 33, 0, input);

                throw nvae;
            }
            switch (alt33) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2786:1: ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2786:1: ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2787:1: ( rule__Const_decl__ContainedTypeAssignment_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConst_declAccess().getContainedTypeAssignment_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2788:1: ( rule__Const_decl__ContainedTypeAssignment_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2788:2: rule__Const_decl__ContainedTypeAssignment_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Const_decl__ContainedTypeAssignment_1_0_in_rule__Const_decl__Alternatives_16030);
                    rule__Const_decl__ContainedTypeAssignment_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConst_declAccess().getContainedTypeAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2792:6: ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2792:6: ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2793:1: ( rule__Const_decl__SharedTypeAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConst_declAccess().getSharedTypeAssignment_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2794:1: ( rule__Const_decl__SharedTypeAssignment_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2794:2: rule__Const_decl__SharedTypeAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Const_decl__SharedTypeAssignment_1_1_in_rule__Const_decl__Alternatives_16048);
                    rule__Const_decl__SharedTypeAssignment_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConst_declAccess().getSharedTypeAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Alternatives_1"


    // $ANTLR start "rule__Const_type__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2803:1: rule__Const_type__Alternatives : ( ( ruleprimitive_def ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_const_type ) );
    public final void rule__Const_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2807:1: ( ( ruleprimitive_def ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_const_type ) )
            int alt34=4;
            switch ( input.LA(1) ) {
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 24:
            case 25:
            case 26:
            case 73:
                {
                alt34=1;
                }
                break;
            case 22:
                {
                int LA34_2 = input.LA(2);

                if ( (LA34_2==70) ) {
                    alt34=2;
                }
                else if ( (LA34_2==EOF||LA34_2==RULE_ID) ) {
                    alt34=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 34, 2, input);

                    throw nvae;
                }
                }
                break;
            case 23:
                {
                int LA34_3 = input.LA(2);

                if ( (LA34_3==70) ) {
                    alt34=3;
                }
                else if ( (LA34_3==EOF||LA34_3==RULE_ID) ) {
                    alt34=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 34, 3, input);

                    throw nvae;
                }
                }
                break;
            case 72:
                {
                alt34=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 34, 0, input);

                throw nvae;
            }

            switch (alt34) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2808:1: ( ruleprimitive_def )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2808:1: ( ruleprimitive_def )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2809:1: ruleprimitive_def
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getPrimitive_defParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleprimitive_def_in_rule__Const_type__Alternatives6081);
                    ruleprimitive_def();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getPrimitive_defParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2814:6: ( rulestringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2814:6: ( rulestringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2815:1: rulestringdef_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getStringdef_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulestringdef_type_in_rule__Const_type__Alternatives6098);
                    rulestringdef_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getStringdef_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2820:6: ( rulewide_stringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2820:6: ( rulewide_stringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2821:1: rulewide_stringdef_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulewide_stringdef_type_in_rule__Const_type__Alternatives6115);
                    rulewide_stringdef_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2826:6: ( rulefixed_pt_const_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2826:6: ( rulefixed_pt_const_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2827:1: rulefixed_pt_const_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getFixed_pt_const_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulefixed_pt_const_type_in_rule__Const_type__Alternatives6132);
                    rulefixed_pt_const_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getFixed_pt_const_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_type__Alternatives"


    // $ANTLR start "rule__Primitive_def__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2837:1: rule__Primitive_def__Alternatives : ( ( ruleinteger_type ) | ( rulefloating_pt_type ) | ( rulecharstr_type ) | ( ruleother_type ) );
    public final void rule__Primitive_def__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2841:1: ( ( ruleinteger_type ) | ( rulefloating_pt_type ) | ( rulecharstr_type ) | ( ruleother_type ) )
            int alt35=4;
            switch ( input.LA(1) ) {
            case 18:
            case 73:
                {
                alt35=1;
                }
                break;
            case 19:
                {
                int LA35_2 = input.LA(2);

                if ( (LA35_2==17) ) {
                    alt35=2;
                }
                else if ( (LA35_2==EOF||LA35_2==RULE_ID||LA35_2==19||LA35_2==49||LA35_2==71) ) {
                    alt35=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 35, 2, input);

                    throw nvae;
                }
                }
                break;
            case 16:
            case 17:
                {
                alt35=2;
                }
                break;
            case 20:
            case 21:
            case 22:
            case 23:
                {
                alt35=3;
                }
                break;
            case 24:
            case 25:
            case 26:
                {
                alt35=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 35, 0, input);

                throw nvae;
            }

            switch (alt35) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2842:1: ( ruleinteger_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2842:1: ( ruleinteger_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2843:1: ruleinteger_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getInteger_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleinteger_type_in_rule__Primitive_def__Alternatives6164);
                    ruleinteger_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getInteger_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2848:6: ( rulefloating_pt_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2848:6: ( rulefloating_pt_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2849:1: rulefloating_pt_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getFloating_pt_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulefloating_pt_type_in_rule__Primitive_def__Alternatives6181);
                    rulefloating_pt_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getFloating_pt_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2854:6: ( rulecharstr_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2854:6: ( rulecharstr_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2855:1: rulecharstr_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getCharstr_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulecharstr_type_in_rule__Primitive_def__Alternatives6198);
                    rulecharstr_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getCharstr_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2860:6: ( ruleother_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2860:6: ( ruleother_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2861:1: ruleother_type
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getOther_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleother_type_in_rule__Primitive_def__Alternatives6215);
                    ruleother_type();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getOther_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primitive_def__Alternatives"


    // $ANTLR start "rule__Sequence_type__Alternatives_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2871:1: rule__Sequence_type__Alternatives_2 : ( ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) ) | ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) ) );
    public final void rule__Sequence_type__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2875:1: ( ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) ) | ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) ) )
            int alt36=2;
            int LA36_0 = input.LA(1);

            if ( ((LA36_0>=16 && LA36_0<=27)||LA36_0==69||(LA36_0>=72 && LA36_0<=73)) ) {
                alt36=1;
            }
            else if ( (LA36_0==RULE_ID) ) {
                alt36=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 36, 0, input);

                throw nvae;
            }
            switch (alt36) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2876:1: ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2876:1: ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2877:1: ( rule__Sequence_type__ContainedTypeAssignment_2_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSequence_typeAccess().getContainedTypeAssignment_2_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2878:1: ( rule__Sequence_type__ContainedTypeAssignment_2_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2878:2: rule__Sequence_type__ContainedTypeAssignment_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__ContainedTypeAssignment_2_0_in_rule__Sequence_type__Alternatives_26247);
                    rule__Sequence_type__ContainedTypeAssignment_2_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSequence_typeAccess().getContainedTypeAssignment_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2882:6: ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2882:6: ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2883:1: ( rule__Sequence_type__SharedTypeAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSequence_typeAccess().getSharedTypeAssignment_2_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2884:1: ( rule__Sequence_type__SharedTypeAssignment_2_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2884:2: rule__Sequence_type__SharedTypeAssignment_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__SharedTypeAssignment_2_1_in_rule__Sequence_type__Alternatives_26265);
                    rule__Sequence_type__SharedTypeAssignment_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSequence_typeAccess().getSharedTypeAssignment_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Alternatives_2"


    // $ANTLR start "rule__Floating_pt_type__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2893:1: rule__Floating_pt_type__Alternatives : ( ( ( rule__Floating_pt_type__KindAssignment_0 ) ) | ( ( rule__Floating_pt_type__KindAssignment_1 ) ) | ( ( rule__Floating_pt_type__KindAssignment_2 ) ) );
    public final void rule__Floating_pt_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2897:1: ( ( ( rule__Floating_pt_type__KindAssignment_0 ) ) | ( ( rule__Floating_pt_type__KindAssignment_1 ) ) | ( ( rule__Floating_pt_type__KindAssignment_2 ) ) )
            int alt37=3;
            switch ( input.LA(1) ) {
            case 16:
                {
                alt37=1;
                }
                break;
            case 17:
                {
                alt37=2;
                }
                break;
            case 19:
                {
                alt37=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 37, 0, input);

                throw nvae;
            }

            switch (alt37) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2898:1: ( ( rule__Floating_pt_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2898:1: ( ( rule__Floating_pt_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2899:1: ( rule__Floating_pt_type__KindAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2900:1: ( rule__Floating_pt_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2900:2: rule__Floating_pt_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__KindAssignment_0_in_rule__Floating_pt_type__Alternatives6298);
                    rule__Floating_pt_type__KindAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2904:6: ( ( rule__Floating_pt_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2904:6: ( ( rule__Floating_pt_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2905:1: ( rule__Floating_pt_type__KindAssignment_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2906:1: ( rule__Floating_pt_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2906:2: rule__Floating_pt_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__KindAssignment_1_in_rule__Floating_pt_type__Alternatives6316);
                    rule__Floating_pt_type__KindAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2910:6: ( ( rule__Floating_pt_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2910:6: ( ( rule__Floating_pt_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2911:1: ( rule__Floating_pt_type__KindAssignment_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2912:1: ( rule__Floating_pt_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2912:2: rule__Floating_pt_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__KindAssignment_2_in_rule__Floating_pt_type__Alternatives6334);
                    rule__Floating_pt_type__KindAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Floating_pt_type__Alternatives"


    // $ANTLR start "rule__Integer_type__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2921:1: rule__Integer_type__Alternatives : ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) );
    public final void rule__Integer_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2925:1: ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) )
            int alt38=6;
            alt38 = dfa38.predict(input);
            switch (alt38) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2926:1: ( ( rule__Integer_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2926:1: ( ( rule__Integer_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2927:1: ( rule__Integer_type__KindAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2928:1: ( rule__Integer_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2928:2: rule__Integer_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_0_in_rule__Integer_type__Alternatives6367);
                    rule__Integer_type__KindAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2932:6: ( ( rule__Integer_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2932:6: ( ( rule__Integer_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2933:1: ( rule__Integer_type__KindAssignment_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2934:1: ( rule__Integer_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2934:2: rule__Integer_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_1_in_rule__Integer_type__Alternatives6385);
                    rule__Integer_type__KindAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2938:6: ( ( rule__Integer_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2938:6: ( ( rule__Integer_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2939:1: ( rule__Integer_type__KindAssignment_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2940:1: ( rule__Integer_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2940:2: rule__Integer_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_2_in_rule__Integer_type__Alternatives6403);
                    rule__Integer_type__KindAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2944:6: ( ( rule__Integer_type__KindAssignment_3 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2944:6: ( ( rule__Integer_type__KindAssignment_3 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2945:1: ( rule__Integer_type__KindAssignment_3 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2946:1: ( rule__Integer_type__KindAssignment_3 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2946:2: rule__Integer_type__KindAssignment_3
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_3_in_rule__Integer_type__Alternatives6421);
                    rule__Integer_type__KindAssignment_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2950:6: ( ( rule__Integer_type__KindAssignment_4 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2950:6: ( ( rule__Integer_type__KindAssignment_4 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2951:1: ( rule__Integer_type__KindAssignment_4 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2952:1: ( rule__Integer_type__KindAssignment_4 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2952:2: rule__Integer_type__KindAssignment_4
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_4_in_rule__Integer_type__Alternatives6439);
                    rule__Integer_type__KindAssignment_4();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2956:6: ( ( rule__Integer_type__KindAssignment_5 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2956:6: ( ( rule__Integer_type__KindAssignment_5 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2957:1: ( rule__Integer_type__KindAssignment_5 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_5()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2958:1: ( rule__Integer_type__KindAssignment_5 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2958:2: rule__Integer_type__KindAssignment_5
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_5_in_rule__Integer_type__Alternatives6457);
                    rule__Integer_type__KindAssignment_5();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Integer_type__Alternatives"


    // $ANTLR start "rule__Charstr_type__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2967:1: rule__Charstr_type__Alternatives : ( ( ( rule__Charstr_type__KindAssignment_0 ) ) | ( ( rule__Charstr_type__KindAssignment_1 ) ) | ( ( rule__Charstr_type__KindAssignment_2 ) ) | ( ( rule__Charstr_type__KindAssignment_3 ) ) );
    public final void rule__Charstr_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2971:1: ( ( ( rule__Charstr_type__KindAssignment_0 ) ) | ( ( rule__Charstr_type__KindAssignment_1 ) ) | ( ( rule__Charstr_type__KindAssignment_2 ) ) | ( ( rule__Charstr_type__KindAssignment_3 ) ) )
            int alt39=4;
            switch ( input.LA(1) ) {
            case 20:
                {
                alt39=1;
                }
                break;
            case 21:
                {
                alt39=2;
                }
                break;
            case 22:
                {
                alt39=3;
                }
                break;
            case 23:
                {
                alt39=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 39, 0, input);

                throw nvae;
            }

            switch (alt39) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2972:1: ( ( rule__Charstr_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2972:1: ( ( rule__Charstr_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2973:1: ( rule__Charstr_type__KindAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2974:1: ( rule__Charstr_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2974:2: rule__Charstr_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_0_in_rule__Charstr_type__Alternatives6490);
                    rule__Charstr_type__KindAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2978:6: ( ( rule__Charstr_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2978:6: ( ( rule__Charstr_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2979:1: ( rule__Charstr_type__KindAssignment_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2980:1: ( rule__Charstr_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2980:2: rule__Charstr_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_1_in_rule__Charstr_type__Alternatives6508);
                    rule__Charstr_type__KindAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2984:6: ( ( rule__Charstr_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2984:6: ( ( rule__Charstr_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2985:1: ( rule__Charstr_type__KindAssignment_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2986:1: ( rule__Charstr_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2986:2: rule__Charstr_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_2_in_rule__Charstr_type__Alternatives6526);
                    rule__Charstr_type__KindAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2990:6: ( ( rule__Charstr_type__KindAssignment_3 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2990:6: ( ( rule__Charstr_type__KindAssignment_3 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2991:1: ( rule__Charstr_type__KindAssignment_3 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2992:1: ( rule__Charstr_type__KindAssignment_3 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2992:2: rule__Charstr_type__KindAssignment_3
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_3_in_rule__Charstr_type__Alternatives6544);
                    rule__Charstr_type__KindAssignment_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Charstr_type__Alternatives"


    // $ANTLR start "rule__Other_type__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3001:1: rule__Other_type__Alternatives : ( ( ( rule__Other_type__KindAssignment_0 ) ) | ( ( rule__Other_type__KindAssignment_1 ) ) | ( ( rule__Other_type__KindAssignment_2 ) ) );
    public final void rule__Other_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3005:1: ( ( ( rule__Other_type__KindAssignment_0 ) ) | ( ( rule__Other_type__KindAssignment_1 ) ) | ( ( rule__Other_type__KindAssignment_2 ) ) )
            int alt40=3;
            switch ( input.LA(1) ) {
            case 24:
                {
                alt40=1;
                }
                break;
            case 25:
                {
                alt40=2;
                }
                break;
            case 26:
                {
                alt40=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 40, 0, input);

                throw nvae;
            }

            switch (alt40) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3006:1: ( ( rule__Other_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3006:1: ( ( rule__Other_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3007:1: ( rule__Other_type__KindAssignment_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOther_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3008:1: ( rule__Other_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3008:2: rule__Other_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Other_type__KindAssignment_0_in_rule__Other_type__Alternatives6577);
                    rule__Other_type__KindAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOther_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3012:6: ( ( rule__Other_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3012:6: ( ( rule__Other_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3013:1: ( rule__Other_type__KindAssignment_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOther_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3014:1: ( rule__Other_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3014:2: rule__Other_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Other_type__KindAssignment_1_in_rule__Other_type__Alternatives6595);
                    rule__Other_type__KindAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOther_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3018:6: ( ( rule__Other_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3018:6: ( ( rule__Other_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3019:1: ( rule__Other_type__KindAssignment_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOther_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3020:1: ( rule__Other_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3020:2: rule__Other_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Other_type__KindAssignment_2_in_rule__Other_type__Alternatives6613);
                    rule__Other_type__KindAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOther_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Other_type__Alternatives"


    // $ANTLR start "rule__Shift_expr__OperatorAlternatives_1_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3029:1: rule__Shift_expr__OperatorAlternatives_1_1_0 : ( ( '>>' ) | ( '<<' ) );
    public final void rule__Shift_expr__OperatorAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3033:1: ( ( '>>' ) | ( '<<' ) )
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==32) ) {
                alt41=1;
            }
            else if ( (LA41_0==33) ) {
                alt41=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 41, 0, input);

                throw nvae;
            }
            switch (alt41) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3034:1: ( '>>' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3034:1: ( '>>' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3035:1: '>>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getShift_exprAccess().getOperatorGreaterThanSignGreaterThanSignKeyword_1_1_0_0()); 
                    }
                    match(input,32,FollowSets000.FOLLOW_32_in_rule__Shift_expr__OperatorAlternatives_1_1_06647); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getShift_exprAccess().getOperatorGreaterThanSignGreaterThanSignKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3042:6: ( '<<' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3042:6: ( '<<' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3043:1: '<<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getShift_exprAccess().getOperatorLessThanSignLessThanSignKeyword_1_1_0_1()); 
                    }
                    match(input,33,FollowSets000.FOLLOW_33_in_rule__Shift_expr__OperatorAlternatives_1_1_06667); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getShift_exprAccess().getOperatorLessThanSignLessThanSignKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__OperatorAlternatives_1_1_0"


    // $ANTLR start "rule__Add_expr__OperatorAlternatives_1_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3055:1: rule__Add_expr__OperatorAlternatives_1_1_0 : ( ( '+' ) | ( '-' ) );
    public final void rule__Add_expr__OperatorAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3059:1: ( ( '+' ) | ( '-' ) )
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==34) ) {
                alt42=1;
            }
            else if ( (LA42_0==35) ) {
                alt42=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 42, 0, input);

                throw nvae;
            }
            switch (alt42) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3060:1: ( '+' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3060:1: ( '+' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3061:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAdd_exprAccess().getOperatorPlusSignKeyword_1_1_0_0()); 
                    }
                    match(input,34,FollowSets000.FOLLOW_34_in_rule__Add_expr__OperatorAlternatives_1_1_06702); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAdd_exprAccess().getOperatorPlusSignKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3068:6: ( '-' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3068:6: ( '-' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3069:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAdd_exprAccess().getOperatorHyphenMinusKeyword_1_1_0_1()); 
                    }
                    match(input,35,FollowSets000.FOLLOW_35_in_rule__Add_expr__OperatorAlternatives_1_1_06722); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAdd_exprAccess().getOperatorHyphenMinusKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__OperatorAlternatives_1_1_0"


    // $ANTLR start "rule__Mult_expr__OperatorAlternatives_1_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3081:1: rule__Mult_expr__OperatorAlternatives_1_1_0 : ( ( '*' ) | ( '/' ) | ( '%' ) );
    public final void rule__Mult_expr__OperatorAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3085:1: ( ( '*' ) | ( '/' ) | ( '%' ) )
            int alt43=3;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt43=1;
                }
                break;
            case 37:
                {
                alt43=2;
                }
                break;
            case 38:
                {
                alt43=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 43, 0, input);

                throw nvae;
            }

            switch (alt43) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3086:1: ( '*' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3086:1: ( '*' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3087:1: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMult_exprAccess().getOperatorAsteriskKeyword_1_1_0_0()); 
                    }
                    match(input,36,FollowSets000.FOLLOW_36_in_rule__Mult_expr__OperatorAlternatives_1_1_06757); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMult_exprAccess().getOperatorAsteriskKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3094:6: ( '/' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3094:6: ( '/' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3095:1: '/'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMult_exprAccess().getOperatorSolidusKeyword_1_1_0_1()); 
                    }
                    match(input,37,FollowSets000.FOLLOW_37_in_rule__Mult_expr__OperatorAlternatives_1_1_06777); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMult_exprAccess().getOperatorSolidusKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3102:6: ( '%' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3102:6: ( '%' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3103:1: '%'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMult_exprAccess().getOperatorPercentSignKeyword_1_1_0_2()); 
                    }
                    match(input,38,FollowSets000.FOLLOW_38_in_rule__Mult_expr__OperatorAlternatives_1_1_06797); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMult_exprAccess().getOperatorPercentSignKeyword_1_1_0_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__OperatorAlternatives_1_1_0"


    // $ANTLR start "rule__Unary_expr__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3115:1: rule__Unary_expr__Alternatives : ( ( ( rule__Unary_expr__Group_0__0 ) ) | ( ruleprimary_expr ) );
    public final void rule__Unary_expr__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3119:1: ( ( ( rule__Unary_expr__Group_0__0 ) ) | ( ruleprimary_expr ) )
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( ((LA44_0>=34 && LA44_0<=35)||LA44_0==39) ) {
                alt44=1;
            }
            else if ( ((LA44_0>=RULE_INT && LA44_0<=RULE_ID)||LA44_0==50) ) {
                alt44=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 44, 0, input);

                throw nvae;
            }
            switch (alt44) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3120:1: ( ( rule__Unary_expr__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3120:1: ( ( rule__Unary_expr__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3121:1: ( rule__Unary_expr__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnary_exprAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3122:1: ( rule__Unary_expr__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3122:2: rule__Unary_expr__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Group_0__0_in_rule__Unary_expr__Alternatives6831);
                    rule__Unary_expr__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnary_exprAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3126:6: ( ruleprimary_expr )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3126:6: ( ruleprimary_expr )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3127:1: ruleprimary_expr
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnary_exprAccess().getPrimary_exprParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleprimary_expr_in_rule__Unary_expr__Alternatives6849);
                    ruleprimary_expr();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnary_exprAccess().getPrimary_exprParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__Alternatives"


    // $ANTLR start "rule__Unary_operator__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3137:1: rule__Unary_operator__Alternatives : ( ( '-' ) | ( '+' ) | ( '~' ) );
    public final void rule__Unary_operator__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3141:1: ( ( '-' ) | ( '+' ) | ( '~' ) )
            int alt45=3;
            switch ( input.LA(1) ) {
            case 35:
                {
                alt45=1;
                }
                break;
            case 34:
                {
                alt45=2;
                }
                break;
            case 39:
                {
                alt45=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 45, 0, input);

                throw nvae;
            }

            switch (alt45) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3142:1: ( '-' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3142:1: ( '-' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3143:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnary_operatorAccess().getHyphenMinusKeyword_0()); 
                    }
                    match(input,35,FollowSets000.FOLLOW_35_in_rule__Unary_operator__Alternatives6882); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnary_operatorAccess().getHyphenMinusKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3150:6: ( '+' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3150:6: ( '+' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3151:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnary_operatorAccess().getPlusSignKeyword_1()); 
                    }
                    match(input,34,FollowSets000.FOLLOW_34_in_rule__Unary_operator__Alternatives6902); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnary_operatorAccess().getPlusSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3158:6: ( '~' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3158:6: ( '~' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3159:1: '~'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnary_operatorAccess().getTildeKeyword_2()); 
                    }
                    match(input,39,FollowSets000.FOLLOW_39_in_rule__Unary_operator__Alternatives6922); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnary_operatorAccess().getTildeKeyword_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_operator__Alternatives"


    // $ANTLR start "rule__Primary_expr__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3171:1: rule__Primary_expr__Alternatives : ( ( ruleconstantDefRef ) | ( rulevalueExpression ) | ( ( rule__Primary_expr__Group_2__0 ) ) );
    public final void rule__Primary_expr__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3175:1: ( ( ruleconstantDefRef ) | ( rulevalueExpression ) | ( ( rule__Primary_expr__Group_2__0 ) ) )
            int alt46=3;
            switch ( input.LA(1) ) {
            case RULE_ID:
                {
                alt46=1;
                }
                break;
            case RULE_INT:
            case RULE_STRING:
            case RULE_HEX_LITERAL:
            case RULE_WIDE_STRING_LITERAL:
            case RULE_FIXED_PT_LITERAL:
            case RULE_FLOATING_PT_LITERAL:
            case RULE_BOOLEAN_LITERAL:
                {
                alt46=2;
                }
                break;
            case 50:
                {
                alt46=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 46, 0, input);

                throw nvae;
            }

            switch (alt46) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3176:1: ( ruleconstantDefRef )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3176:1: ( ruleconstantDefRef )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3177:1: ruleconstantDefRef
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimary_exprAccess().getConstantDefRefParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleconstantDefRef_in_rule__Primary_expr__Alternatives6956);
                    ruleconstantDefRef();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimary_exprAccess().getConstantDefRefParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3182:6: ( rulevalueExpression )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3182:6: ( rulevalueExpression )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3183:1: rulevalueExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimary_exprAccess().getValueExpressionParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulevalueExpression_in_rule__Primary_expr__Alternatives6973);
                    rulevalueExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimary_exprAccess().getValueExpressionParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3188:6: ( ( rule__Primary_expr__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3188:6: ( ( rule__Primary_expr__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3189:1: ( rule__Primary_expr__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimary_exprAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3190:1: ( rule__Primary_expr__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3190:2: rule__Primary_expr__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Group_2__0_in_rule__Primary_expr__Alternatives6990);
                    rule__Primary_expr__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimary_exprAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary_expr__Alternatives"


    // $ANTLR start "rule__Literal__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3199:1: rule__Literal__Alternatives : ( ( RULE_INT ) | ( RULE_STRING ) | ( RULE_HEX_LITERAL ) | ( RULE_WIDE_STRING_LITERAL ) | ( RULE_FIXED_PT_LITERAL ) | ( RULE_FLOATING_PT_LITERAL ) | ( RULE_BOOLEAN_LITERAL ) );
    public final void rule__Literal__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3203:1: ( ( RULE_INT ) | ( RULE_STRING ) | ( RULE_HEX_LITERAL ) | ( RULE_WIDE_STRING_LITERAL ) | ( RULE_FIXED_PT_LITERAL ) | ( RULE_FLOATING_PT_LITERAL ) | ( RULE_BOOLEAN_LITERAL ) )
            int alt47=7;
            switch ( input.LA(1) ) {
            case RULE_INT:
                {
                alt47=1;
                }
                break;
            case RULE_STRING:
                {
                alt47=2;
                }
                break;
            case RULE_HEX_LITERAL:
                {
                alt47=3;
                }
                break;
            case RULE_WIDE_STRING_LITERAL:
                {
                alt47=4;
                }
                break;
            case RULE_FIXED_PT_LITERAL:
                {
                alt47=5;
                }
                break;
            case RULE_FLOATING_PT_LITERAL:
                {
                alt47=6;
                }
                break;
            case RULE_BOOLEAN_LITERAL:
                {
                alt47=7;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 47, 0, input);

                throw nvae;
            }

            switch (alt47) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3204:1: ( RULE_INT )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3204:1: ( RULE_INT )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3205:1: RULE_INT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getINTTerminalRuleCall_0()); 
                    }
                    match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__Literal__Alternatives7023); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getINTTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3210:6: ( RULE_STRING )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3210:6: ( RULE_STRING )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3211:1: RULE_STRING
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getSTRINGTerminalRuleCall_1()); 
                    }
                    match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__Literal__Alternatives7040); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getSTRINGTerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3216:6: ( RULE_HEX_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3216:6: ( RULE_HEX_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3217:1: RULE_HEX_LITERAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getHEX_LITERALTerminalRuleCall_2()); 
                    }
                    match(input,RULE_HEX_LITERAL,FollowSets000.FOLLOW_RULE_HEX_LITERAL_in_rule__Literal__Alternatives7057); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getHEX_LITERALTerminalRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3222:6: ( RULE_WIDE_STRING_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3222:6: ( RULE_WIDE_STRING_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3223:1: RULE_WIDE_STRING_LITERAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getWIDE_STRING_LITERALTerminalRuleCall_3()); 
                    }
                    match(input,RULE_WIDE_STRING_LITERAL,FollowSets000.FOLLOW_RULE_WIDE_STRING_LITERAL_in_rule__Literal__Alternatives7074); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getWIDE_STRING_LITERALTerminalRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3228:6: ( RULE_FIXED_PT_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3228:6: ( RULE_FIXED_PT_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3229:1: RULE_FIXED_PT_LITERAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getFIXED_PT_LITERALTerminalRuleCall_4()); 
                    }
                    match(input,RULE_FIXED_PT_LITERAL,FollowSets000.FOLLOW_RULE_FIXED_PT_LITERAL_in_rule__Literal__Alternatives7091); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getFIXED_PT_LITERALTerminalRuleCall_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3234:6: ( RULE_FLOATING_PT_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3234:6: ( RULE_FLOATING_PT_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3235:1: RULE_FLOATING_PT_LITERAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getFLOATING_PT_LITERALTerminalRuleCall_5()); 
                    }
                    match(input,RULE_FLOATING_PT_LITERAL,FollowSets000.FOLLOW_RULE_FLOATING_PT_LITERAL_in_rule__Literal__Alternatives7108); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getFLOATING_PT_LITERALTerminalRuleCall_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3240:6: ( RULE_BOOLEAN_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3240:6: ( RULE_BOOLEAN_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3241:1: RULE_BOOLEAN_LITERAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getBOOLEAN_LITERALTerminalRuleCall_6()); 
                    }
                    match(input,RULE_BOOLEAN_LITERAL,FollowSets000.FOLLOW_RULE_BOOLEAN_LITERAL_in_rule__Literal__Alternatives7125); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getBOOLEAN_LITERALTerminalRuleCall_6()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Literal__Alternatives"


    // $ANTLR start "rule__Param_attribute__Alternatives"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3251:1: rule__Param_attribute__Alternatives : ( ( ( 'in' ) ) | ( ( 'out' ) ) | ( ( 'inout' ) ) );
    public final void rule__Param_attribute__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3255:1: ( ( ( 'in' ) ) | ( ( 'out' ) ) | ( ( 'inout' ) ) )
            int alt48=3;
            switch ( input.LA(1) ) {
            case 40:
                {
                alt48=1;
                }
                break;
            case 41:
                {
                alt48=2;
                }
                break;
            case 42:
                {
                alt48=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 48, 0, input);

                throw nvae;
            }

            switch (alt48) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3256:1: ( ( 'in' ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3256:1: ( ( 'in' ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3257:1: ( 'in' )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getParam_attributeAccess().getPARAM_INEnumLiteralDeclaration_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3258:1: ( 'in' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3258:3: 'in'
                    {
                    match(input,40,FollowSets000.FOLLOW_40_in_rule__Param_attribute__Alternatives7158); if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getParam_attributeAccess().getPARAM_INEnumLiteralDeclaration_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3263:6: ( ( 'out' ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3263:6: ( ( 'out' ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3264:1: ( 'out' )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getParam_attributeAccess().getPARAM_OUTEnumLiteralDeclaration_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3265:1: ( 'out' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3265:3: 'out'
                    {
                    match(input,41,FollowSets000.FOLLOW_41_in_rule__Param_attribute__Alternatives7179); if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getParam_attributeAccess().getPARAM_OUTEnumLiteralDeclaration_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3270:6: ( ( 'inout' ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3270:6: ( ( 'inout' ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3271:1: ( 'inout' )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getParam_attributeAccess().getPARAM_INOUTEnumLiteralDeclaration_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3272:1: ( 'inout' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3272:3: 'inout'
                    {
                    match(input,42,FollowSets000.FOLLOW_42_in_rule__Param_attribute__Alternatives7200); if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getParam_attributeAccess().getPARAM_INOUTEnumLiteralDeclaration_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_attribute__Alternatives"


    // $ANTLR start "rule__Specification__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3284:1: rule__Specification__Group__0 : rule__Specification__Group__0__Impl rule__Specification__Group__1 ;
    public final void rule__Specification__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3288:1: ( rule__Specification__Group__0__Impl rule__Specification__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3289:2: rule__Specification__Group__0__Impl rule__Specification__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__0__Impl_in_rule__Specification__Group__07233);
            rule__Specification__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__1_in_rule__Specification__Group__07236);
            rule__Specification__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__Group__0"


    // $ANTLR start "rule__Specification__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3296:1: rule__Specification__Group__0__Impl : ( () ) ;
    public final void rule__Specification__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3300:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3301:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3301:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3302:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getTranslationUnitAction_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3303:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3305:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getTranslationUnitAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__Group__0__Impl"


    // $ANTLR start "rule__Specification__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3315:1: rule__Specification__Group__1 : rule__Specification__Group__1__Impl rule__Specification__Group__2 ;
    public final void rule__Specification__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3319:1: ( rule__Specification__Group__1__Impl rule__Specification__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3320:2: rule__Specification__Group__1__Impl rule__Specification__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__1__Impl_in_rule__Specification__Group__17294);
            rule__Specification__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__2_in_rule__Specification__Group__17297);
            rule__Specification__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__Group__1"


    // $ANTLR start "rule__Specification__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3327:1: rule__Specification__Group__1__Impl : ( ( rule__Specification__IncludesAssignment_1 )* ) ;
    public final void rule__Specification__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3331:1: ( ( ( rule__Specification__IncludesAssignment_1 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3332:1: ( ( rule__Specification__IncludesAssignment_1 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3332:1: ( ( rule__Specification__IncludesAssignment_1 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3333:1: ( rule__Specification__IncludesAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getIncludesAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3334:1: ( rule__Specification__IncludesAssignment_1 )*
            loop49:
            do {
                int alt49=2;
                int LA49_0 = input.LA(1);

                if ( (LA49_0==43) ) {
                    alt49=1;
                }


                switch (alt49) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3334:2: rule__Specification__IncludesAssignment_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Specification__IncludesAssignment_1_in_rule__Specification__Group__1__Impl7324);
            	    rule__Specification__IncludesAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop49;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getIncludesAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__Group__1__Impl"


    // $ANTLR start "rule__Specification__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3344:1: rule__Specification__Group__2 : rule__Specification__Group__2__Impl ;
    public final void rule__Specification__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3348:1: ( rule__Specification__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3349:2: rule__Specification__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__2__Impl_in_rule__Specification__Group__27355);
            rule__Specification__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__Group__2"


    // $ANTLR start "rule__Specification__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3355:1: rule__Specification__Group__2__Impl : ( ( rule__Specification__ContainsAssignment_2 )* ) ;
    public final void rule__Specification__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3359:1: ( ( ( rule__Specification__ContainsAssignment_2 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3360:1: ( ( rule__Specification__ContainsAssignment_2 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3360:1: ( ( rule__Specification__ContainsAssignment_2 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3361:1: ( rule__Specification__ContainsAssignment_2 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getContainsAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3362:1: ( rule__Specification__ContainsAssignment_2 )*
            loop50:
            do {
                int alt50=2;
                int LA50_0 = input.LA(1);

                if ( ((LA50_0>=30 && LA50_0<=31)||LA50_0==44||LA50_0==47||(LA50_0>=57 && LA50_0<=59)||(LA50_0>=62 && LA50_0<=63)||(LA50_0>=66 && LA50_0<=67)) ) {
                    alt50=1;
                }


                switch (alt50) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3362:2: rule__Specification__ContainsAssignment_2
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Specification__ContainsAssignment_2_in_rule__Specification__Group__2__Impl7382);
            	    rule__Specification__ContainsAssignment_2();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop50;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getContainsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__Group__2__Impl"


    // $ANTLR start "rule__Include_decl__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3378:1: rule__Include_decl__Group__0 : rule__Include_decl__Group__0__Impl rule__Include_decl__Group__1 ;
    public final void rule__Include_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3382:1: ( rule__Include_decl__Group__0__Impl rule__Include_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3383:2: rule__Include_decl__Group__0__Impl rule__Include_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__0__Impl_in_rule__Include_decl__Group__07419);
            rule__Include_decl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__1_in_rule__Include_decl__Group__07422);
            rule__Include_decl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Include_decl__Group__0"


    // $ANTLR start "rule__Include_decl__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3390:1: rule__Include_decl__Group__0__Impl : ( '#include' ) ;
    public final void rule__Include_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3394:1: ( ( '#include' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3395:1: ( '#include' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3395:1: ( '#include' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3396:1: '#include'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getIncludeKeyword_0()); 
            }
            match(input,43,FollowSets000.FOLLOW_43_in_rule__Include_decl__Group__0__Impl7450); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getIncludeKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Include_decl__Group__0__Impl"


    // $ANTLR start "rule__Include_decl__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3409:1: rule__Include_decl__Group__1 : rule__Include_decl__Group__1__Impl ;
    public final void rule__Include_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3413:1: ( rule__Include_decl__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3414:2: rule__Include_decl__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__1__Impl_in_rule__Include_decl__Group__17481);
            rule__Include_decl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Include_decl__Group__1"


    // $ANTLR start "rule__Include_decl__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3420:1: rule__Include_decl__Group__1__Impl : ( ( rule__Include_decl__ImportURIAssignment_1 ) ) ;
    public final void rule__Include_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3424:1: ( ( ( rule__Include_decl__ImportURIAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3425:1: ( ( rule__Include_decl__ImportURIAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3425:1: ( ( rule__Include_decl__ImportURIAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3426:1: ( rule__Include_decl__ImportURIAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getImportURIAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3427:1: ( rule__Include_decl__ImportURIAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3427:2: rule__Include_decl__ImportURIAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__ImportURIAssignment_1_in_rule__Include_decl__Group__1__Impl7508);
            rule__Include_decl__ImportURIAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getImportURIAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Include_decl__Group__1__Impl"


    // $ANTLR start "rule__Definition__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3441:1: rule__Definition__Group_0__0 : rule__Definition__Group_0__0__Impl rule__Definition__Group_0__1 ;
    public final void rule__Definition__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3445:1: ( rule__Definition__Group_0__0__Impl rule__Definition__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3446:2: rule__Definition__Group_0__0__Impl rule__Definition__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__0__Impl_in_rule__Definition__Group_0__07542);
            rule__Definition__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__1_in_rule__Definition__Group_0__07545);
            rule__Definition__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_0__0"


    // $ANTLR start "rule__Definition__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3453:1: rule__Definition__Group_0__0__Impl : ( ruletype_decl ) ;
    public final void rule__Definition__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3457:1: ( ( ruletype_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3458:1: ( ruletype_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3458:1: ( ruletype_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3459:1: ruletype_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getType_declParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletype_decl_in_rule__Definition__Group_0__0__Impl7572);
            ruletype_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getType_declParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_0__0__Impl"


    // $ANTLR start "rule__Definition__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3470:1: rule__Definition__Group_0__1 : rule__Definition__Group_0__1__Impl ;
    public final void rule__Definition__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3474:1: ( rule__Definition__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3475:2: rule__Definition__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__1__Impl_in_rule__Definition__Group_0__17601);
            rule__Definition__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_0__1"


    // $ANTLR start "rule__Definition__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3481:1: rule__Definition__Group_0__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3485:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3486:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3486:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3487:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_0_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_0__1__Impl7629); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_0__1__Impl"


    // $ANTLR start "rule__Definition__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3504:1: rule__Definition__Group_1__0 : rule__Definition__Group_1__0__Impl rule__Definition__Group_1__1 ;
    public final void rule__Definition__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3508:1: ( rule__Definition__Group_1__0__Impl rule__Definition__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3509:2: rule__Definition__Group_1__0__Impl rule__Definition__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__0__Impl_in_rule__Definition__Group_1__07664);
            rule__Definition__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__1_in_rule__Definition__Group_1__07667);
            rule__Definition__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_1__0"


    // $ANTLR start "rule__Definition__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3516:1: rule__Definition__Group_1__0__Impl : ( ruleconst_decl ) ;
    public final void rule__Definition__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3520:1: ( ( ruleconst_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3521:1: ( ruleconst_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3521:1: ( ruleconst_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3522:1: ruleconst_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getConst_declParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_decl_in_rule__Definition__Group_1__0__Impl7694);
            ruleconst_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getConst_declParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_1__0__Impl"


    // $ANTLR start "rule__Definition__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3533:1: rule__Definition__Group_1__1 : rule__Definition__Group_1__1__Impl ;
    public final void rule__Definition__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3537:1: ( rule__Definition__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3538:2: rule__Definition__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__1__Impl_in_rule__Definition__Group_1__17723);
            rule__Definition__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_1__1"


    // $ANTLR start "rule__Definition__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3544:1: rule__Definition__Group_1__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3548:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3549:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3549:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3550:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_1_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_1__1__Impl7751); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_1__1__Impl"


    // $ANTLR start "rule__Definition__Group_2__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3567:1: rule__Definition__Group_2__0 : rule__Definition__Group_2__0__Impl rule__Definition__Group_2__1 ;
    public final void rule__Definition__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3571:1: ( rule__Definition__Group_2__0__Impl rule__Definition__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3572:2: rule__Definition__Group_2__0__Impl rule__Definition__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__0__Impl_in_rule__Definition__Group_2__07786);
            rule__Definition__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__1_in_rule__Definition__Group_2__07789);
            rule__Definition__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_2__0"


    // $ANTLR start "rule__Definition__Group_2__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3579:1: rule__Definition__Group_2__0__Impl : ( ruleexcept_decl ) ;
    public final void rule__Definition__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3583:1: ( ( ruleexcept_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3584:1: ( ruleexcept_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3584:1: ( ruleexcept_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3585:1: ruleexcept_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getExcept_declParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexcept_decl_in_rule__Definition__Group_2__0__Impl7816);
            ruleexcept_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getExcept_declParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_2__0__Impl"


    // $ANTLR start "rule__Definition__Group_2__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3596:1: rule__Definition__Group_2__1 : rule__Definition__Group_2__1__Impl ;
    public final void rule__Definition__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3600:1: ( rule__Definition__Group_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3601:2: rule__Definition__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__1__Impl_in_rule__Definition__Group_2__17845);
            rule__Definition__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_2__1"


    // $ANTLR start "rule__Definition__Group_2__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3607:1: rule__Definition__Group_2__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3611:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3612:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3612:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3613:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_2_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_2__1__Impl7873); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_2__1__Impl"


    // $ANTLR start "rule__Definition__Group_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3630:1: rule__Definition__Group_3__0 : rule__Definition__Group_3__0__Impl rule__Definition__Group_3__1 ;
    public final void rule__Definition__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3634:1: ( rule__Definition__Group_3__0__Impl rule__Definition__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3635:2: rule__Definition__Group_3__0__Impl rule__Definition__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__0__Impl_in_rule__Definition__Group_3__07908);
            rule__Definition__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__1_in_rule__Definition__Group_3__07911);
            rule__Definition__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_3__0"


    // $ANTLR start "rule__Definition__Group_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3642:1: rule__Definition__Group_3__0__Impl : ( ruleinterface_decl ) ;
    public final void rule__Definition__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3646:1: ( ( ruleinterface_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3647:1: ( ruleinterface_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3647:1: ( ruleinterface_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3648:1: ruleinterface_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getInterface_declParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_decl_in_rule__Definition__Group_3__0__Impl7938);
            ruleinterface_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getInterface_declParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_3__0__Impl"


    // $ANTLR start "rule__Definition__Group_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3659:1: rule__Definition__Group_3__1 : rule__Definition__Group_3__1__Impl ;
    public final void rule__Definition__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3663:1: ( rule__Definition__Group_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3664:2: rule__Definition__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__1__Impl_in_rule__Definition__Group_3__17967);
            rule__Definition__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_3__1"


    // $ANTLR start "rule__Definition__Group_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3670:1: rule__Definition__Group_3__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3674:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3675:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3675:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3676:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_3_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_3__1__Impl7995); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_3__1__Impl"


    // $ANTLR start "rule__Definition__Group_4__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3693:1: rule__Definition__Group_4__0 : rule__Definition__Group_4__0__Impl rule__Definition__Group_4__1 ;
    public final void rule__Definition__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3697:1: ( rule__Definition__Group_4__0__Impl rule__Definition__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3698:2: rule__Definition__Group_4__0__Impl rule__Definition__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__0__Impl_in_rule__Definition__Group_4__08030);
            rule__Definition__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__1_in_rule__Definition__Group_4__08033);
            rule__Definition__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_4__0"


    // $ANTLR start "rule__Definition__Group_4__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3705:1: rule__Definition__Group_4__0__Impl : ( ruleinterface_fwd ) ;
    public final void rule__Definition__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3709:1: ( ( ruleinterface_fwd ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3710:1: ( ruleinterface_fwd )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3710:1: ( ruleinterface_fwd )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3711:1: ruleinterface_fwd
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getInterface_fwdParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_fwd_in_rule__Definition__Group_4__0__Impl8060);
            ruleinterface_fwd();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getInterface_fwdParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_4__0__Impl"


    // $ANTLR start "rule__Definition__Group_4__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3722:1: rule__Definition__Group_4__1 : rule__Definition__Group_4__1__Impl ;
    public final void rule__Definition__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3726:1: ( rule__Definition__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3727:2: rule__Definition__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__1__Impl_in_rule__Definition__Group_4__18089);
            rule__Definition__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_4__1"


    // $ANTLR start "rule__Definition__Group_4__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3733:1: rule__Definition__Group_4__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3737:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3738:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3738:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3739:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_4_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_4__1__Impl8117); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_4__1__Impl"


    // $ANTLR start "rule__Definition__Group_5__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3756:1: rule__Definition__Group_5__0 : rule__Definition__Group_5__0__Impl rule__Definition__Group_5__1 ;
    public final void rule__Definition__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3760:1: ( rule__Definition__Group_5__0__Impl rule__Definition__Group_5__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3761:2: rule__Definition__Group_5__0__Impl rule__Definition__Group_5__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__0__Impl_in_rule__Definition__Group_5__08152);
            rule__Definition__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__1_in_rule__Definition__Group_5__08155);
            rule__Definition__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_5__0"


    // $ANTLR start "rule__Definition__Group_5__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3768:1: rule__Definition__Group_5__0__Impl : ( rulemodule ) ;
    public final void rule__Definition__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3772:1: ( ( rulemodule ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3773:1: ( rulemodule )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3773:1: ( rulemodule )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3774:1: rulemodule
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getModuleParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemodule_in_rule__Definition__Group_5__0__Impl8182);
            rulemodule();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getModuleParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_5__0__Impl"


    // $ANTLR start "rule__Definition__Group_5__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3785:1: rule__Definition__Group_5__1 : rule__Definition__Group_5__1__Impl ;
    public final void rule__Definition__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3789:1: ( rule__Definition__Group_5__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3790:2: rule__Definition__Group_5__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__1__Impl_in_rule__Definition__Group_5__18211);
            rule__Definition__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_5__1"


    // $ANTLR start "rule__Definition__Group_5__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3796:1: rule__Definition__Group_5__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3800:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3801:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3801:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3802:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_5_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_5__1__Impl8239); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Definition__Group_5__1__Impl"


    // $ANTLR start "rule__Module__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3819:1: rule__Module__Group__0 : rule__Module__Group__0__Impl rule__Module__Group__1 ;
    public final void rule__Module__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3823:1: ( rule__Module__Group__0__Impl rule__Module__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3824:2: rule__Module__Group__0__Impl rule__Module__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__08274);
            rule__Module__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__1_in_rule__Module__Group__08277);
            rule__Module__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__0"


    // $ANTLR start "rule__Module__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3831:1: rule__Module__Group__0__Impl : ( 'module' ) ;
    public final void rule__Module__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3835:1: ( ( 'module' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3836:1: ( 'module' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3836:1: ( 'module' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3837:1: 'module'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getModuleKeyword_0()); 
            }
            match(input,44,FollowSets000.FOLLOW_44_in_rule__Module__Group__0__Impl8305); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getModuleKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__0__Impl"


    // $ANTLR start "rule__Module__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3850:1: rule__Module__Group__1 : rule__Module__Group__1__Impl rule__Module__Group__2 ;
    public final void rule__Module__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3854:1: ( rule__Module__Group__1__Impl rule__Module__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3855:2: rule__Module__Group__1__Impl rule__Module__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__18336);
            rule__Module__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__2_in_rule__Module__Group__18339);
            rule__Module__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__1"


    // $ANTLR start "rule__Module__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3862:1: rule__Module__Group__1__Impl : ( ( rule__Module__IdentifierAssignment_1 ) ) ;
    public final void rule__Module__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3866:1: ( ( ( rule__Module__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3867:1: ( ( rule__Module__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3867:1: ( ( rule__Module__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3868:1: ( rule__Module__IdentifierAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3869:1: ( rule__Module__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3869:2: rule__Module__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__IdentifierAssignment_1_in_rule__Module__Group__1__Impl8366);
            rule__Module__IdentifierAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__1__Impl"


    // $ANTLR start "rule__Module__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3879:1: rule__Module__Group__2 : rule__Module__Group__2__Impl rule__Module__Group__3 ;
    public final void rule__Module__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3883:1: ( rule__Module__Group__2__Impl rule__Module__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3884:2: rule__Module__Group__2__Impl rule__Module__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__28396);
            rule__Module__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__3_in_rule__Module__Group__28399);
            rule__Module__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__2"


    // $ANTLR start "rule__Module__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3891:1: rule__Module__Group__2__Impl : ( '{' ) ;
    public final void rule__Module__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3895:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3896:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3896:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3897:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Module__Group__2__Impl8427); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__2__Impl"


    // $ANTLR start "rule__Module__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3910:1: rule__Module__Group__3 : rule__Module__Group__3__Impl rule__Module__Group__4 ;
    public final void rule__Module__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3914:1: ( rule__Module__Group__3__Impl rule__Module__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3915:2: rule__Module__Group__3__Impl rule__Module__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__38458);
            rule__Module__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__4_in_rule__Module__Group__38461);
            rule__Module__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__3"


    // $ANTLR start "rule__Module__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3922:1: rule__Module__Group__3__Impl : ( ( rule__Module__Alternatives_3 )* ) ;
    public final void rule__Module__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3926:1: ( ( ( rule__Module__Alternatives_3 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3927:1: ( ( rule__Module__Alternatives_3 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3927:1: ( ( rule__Module__Alternatives_3 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3928:1: ( rule__Module__Alternatives_3 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getAlternatives_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3929:1: ( rule__Module__Alternatives_3 )*
            loop51:
            do {
                int alt51=2;
                int LA51_0 = input.LA(1);

                if ( ((LA51_0>=29 && LA51_0<=31)||LA51_0==44||LA51_0==47||(LA51_0>=57 && LA51_0<=59)||(LA51_0>=62 && LA51_0<=63)||(LA51_0>=66 && LA51_0<=67)) ) {
                    alt51=1;
                }


                switch (alt51) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3929:2: rule__Module__Alternatives_3
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Module__Alternatives_3_in_rule__Module__Group__3__Impl8488);
            	    rule__Module__Alternatives_3();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop51;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getAlternatives_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__3__Impl"


    // $ANTLR start "rule__Module__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3939:1: rule__Module__Group__4 : rule__Module__Group__4__Impl ;
    public final void rule__Module__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3943:1: ( rule__Module__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3944:2: rule__Module__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__48519);
            rule__Module__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__4"


    // $ANTLR start "rule__Module__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3950:1: rule__Module__Group__4__Impl : ( '}' ) ;
    public final void rule__Module__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3954:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3955:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3955:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3956:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Module__Group__4__Impl8547); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__Group__4__Impl"


    // $ANTLR start "rule__Interface_decl__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3979:1: rule__Interface_decl__Group__0 : rule__Interface_decl__Group__0__Impl rule__Interface_decl__Group__1 ;
    public final void rule__Interface_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3983:1: ( rule__Interface_decl__Group__0__Impl rule__Interface_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3984:2: rule__Interface_decl__Group__0__Impl rule__Interface_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__0__Impl_in_rule__Interface_decl__Group__08588);
            rule__Interface_decl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__1_in_rule__Interface_decl__Group__08591);
            rule__Interface_decl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__0"


    // $ANTLR start "rule__Interface_decl__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3991:1: rule__Interface_decl__Group__0__Impl : ( ( rule__Interface_decl__Alternatives_0 )? ) ;
    public final void rule__Interface_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3995:1: ( ( ( rule__Interface_decl__Alternatives_0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3996:1: ( ( rule__Interface_decl__Alternatives_0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3996:1: ( ( rule__Interface_decl__Alternatives_0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3997:1: ( rule__Interface_decl__Alternatives_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getAlternatives_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3998:1: ( rule__Interface_decl__Alternatives_0 )?
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( ((LA52_0>=30 && LA52_0<=31)) ) {
                alt52=1;
            }
            switch (alt52) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3998:2: rule__Interface_decl__Alternatives_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Alternatives_0_in_rule__Interface_decl__Group__0__Impl8618);
                    rule__Interface_decl__Alternatives_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__0__Impl"


    // $ANTLR start "rule__Interface_decl__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4008:1: rule__Interface_decl__Group__1 : rule__Interface_decl__Group__1__Impl rule__Interface_decl__Group__2 ;
    public final void rule__Interface_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4012:1: ( rule__Interface_decl__Group__1__Impl rule__Interface_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4013:2: rule__Interface_decl__Group__1__Impl rule__Interface_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__1__Impl_in_rule__Interface_decl__Group__18649);
            rule__Interface_decl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__2_in_rule__Interface_decl__Group__18652);
            rule__Interface_decl__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__1"


    // $ANTLR start "rule__Interface_decl__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4020:1: rule__Interface_decl__Group__1__Impl : ( 'interface' ) ;
    public final void rule__Interface_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4024:1: ( ( 'interface' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4025:1: ( 'interface' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4025:1: ( 'interface' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4026:1: 'interface'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getInterfaceKeyword_1()); 
            }
            match(input,47,FollowSets000.FOLLOW_47_in_rule__Interface_decl__Group__1__Impl8680); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getInterfaceKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__1__Impl"


    // $ANTLR start "rule__Interface_decl__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4039:1: rule__Interface_decl__Group__2 : rule__Interface_decl__Group__2__Impl rule__Interface_decl__Group__3 ;
    public final void rule__Interface_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4043:1: ( rule__Interface_decl__Group__2__Impl rule__Interface_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4044:2: rule__Interface_decl__Group__2__Impl rule__Interface_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__2__Impl_in_rule__Interface_decl__Group__28711);
            rule__Interface_decl__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__3_in_rule__Interface_decl__Group__28714);
            rule__Interface_decl__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__2"


    // $ANTLR start "rule__Interface_decl__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4051:1: rule__Interface_decl__Group__2__Impl : ( ( rule__Interface_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Interface_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4055:1: ( ( ( rule__Interface_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4056:1: ( ( rule__Interface_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4056:1: ( ( rule__Interface_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4057:1: ( rule__Interface_decl__IdentifierAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4058:1: ( rule__Interface_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4058:2: rule__Interface_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__IdentifierAssignment_2_in_rule__Interface_decl__Group__2__Impl8741);
            rule__Interface_decl__IdentifierAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__2__Impl"


    // $ANTLR start "rule__Interface_decl__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4068:1: rule__Interface_decl__Group__3 : rule__Interface_decl__Group__3__Impl rule__Interface_decl__Group__4 ;
    public final void rule__Interface_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4072:1: ( rule__Interface_decl__Group__3__Impl rule__Interface_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4073:2: rule__Interface_decl__Group__3__Impl rule__Interface_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__3__Impl_in_rule__Interface_decl__Group__38771);
            rule__Interface_decl__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__4_in_rule__Interface_decl__Group__38774);
            rule__Interface_decl__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__3"


    // $ANTLR start "rule__Interface_decl__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4080:1: rule__Interface_decl__Group__3__Impl : ( ( rule__Interface_decl__Group_3__0 )? ) ;
    public final void rule__Interface_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4084:1: ( ( ( rule__Interface_decl__Group_3__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4085:1: ( ( rule__Interface_decl__Group_3__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4085:1: ( ( rule__Interface_decl__Group_3__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4086:1: ( rule__Interface_decl__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getGroup_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4087:1: ( rule__Interface_decl__Group_3__0 )?
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( (LA53_0==48) ) {
                alt53=1;
            }
            switch (alt53) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4087:2: rule__Interface_decl__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__0_in_rule__Interface_decl__Group__3__Impl8801);
                    rule__Interface_decl__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__3__Impl"


    // $ANTLR start "rule__Interface_decl__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4097:1: rule__Interface_decl__Group__4 : rule__Interface_decl__Group__4__Impl rule__Interface_decl__Group__5 ;
    public final void rule__Interface_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4101:1: ( rule__Interface_decl__Group__4__Impl rule__Interface_decl__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4102:2: rule__Interface_decl__Group__4__Impl rule__Interface_decl__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__4__Impl_in_rule__Interface_decl__Group__48832);
            rule__Interface_decl__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__5_in_rule__Interface_decl__Group__48835);
            rule__Interface_decl__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__4"


    // $ANTLR start "rule__Interface_decl__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4109:1: rule__Interface_decl__Group__4__Impl : ( '{' ) ;
    public final void rule__Interface_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4113:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4114:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4114:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4115:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getLeftCurlyBracketKeyword_4()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Interface_decl__Group__4__Impl8863); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getLeftCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__4__Impl"


    // $ANTLR start "rule__Interface_decl__Group__5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4128:1: rule__Interface_decl__Group__5 : rule__Interface_decl__Group__5__Impl rule__Interface_decl__Group__6 ;
    public final void rule__Interface_decl__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4132:1: ( rule__Interface_decl__Group__5__Impl rule__Interface_decl__Group__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4133:2: rule__Interface_decl__Group__5__Impl rule__Interface_decl__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__5__Impl_in_rule__Interface_decl__Group__58894);
            rule__Interface_decl__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__6_in_rule__Interface_decl__Group__58897);
            rule__Interface_decl__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__5"


    // $ANTLR start "rule__Interface_decl__Group__5__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4140:1: rule__Interface_decl__Group__5__Impl : ( ( rule__Interface_decl__Alternatives_5 )* ) ;
    public final void rule__Interface_decl__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4144:1: ( ( ( rule__Interface_decl__Alternatives_5 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4145:1: ( ( rule__Interface_decl__Alternatives_5 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4145:1: ( ( rule__Interface_decl__Alternatives_5 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4146:1: ( rule__Interface_decl__Alternatives_5 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getAlternatives_5()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4147:1: ( rule__Interface_decl__Alternatives_5 )*
            loop54:
            do {
                int alt54=2;
                int LA54_0 = input.LA(1);

                if ( (LA54_0==RULE_ID||(LA54_0>=16 && LA54_0<=29)||LA54_0==54||(LA54_0>=57 && LA54_0<=59)||(LA54_0>=62 && LA54_0<=63)||(LA54_0>=66 && LA54_0<=67)||(LA54_0>=73 && LA54_0<=75)) ) {
                    alt54=1;
                }


                switch (alt54) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4147:2: rule__Interface_decl__Alternatives_5
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Alternatives_5_in_rule__Interface_decl__Group__5__Impl8924);
            	    rule__Interface_decl__Alternatives_5();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop54;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getAlternatives_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__5__Impl"


    // $ANTLR start "rule__Interface_decl__Group__6"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4157:1: rule__Interface_decl__Group__6 : rule__Interface_decl__Group__6__Impl ;
    public final void rule__Interface_decl__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4161:1: ( rule__Interface_decl__Group__6__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4162:2: rule__Interface_decl__Group__6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__6__Impl_in_rule__Interface_decl__Group__68955);
            rule__Interface_decl__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__6"


    // $ANTLR start "rule__Interface_decl__Group__6__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4168:1: rule__Interface_decl__Group__6__Impl : ( '}' ) ;
    public final void rule__Interface_decl__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4172:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4173:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4173:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4174:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getRightCurlyBracketKeyword_6()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Interface_decl__Group__6__Impl8983); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getRightCurlyBracketKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group__6__Impl"


    // $ANTLR start "rule__Interface_decl__Group_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4201:1: rule__Interface_decl__Group_3__0 : rule__Interface_decl__Group_3__0__Impl rule__Interface_decl__Group_3__1 ;
    public final void rule__Interface_decl__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4205:1: ( rule__Interface_decl__Group_3__0__Impl rule__Interface_decl__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4206:2: rule__Interface_decl__Group_3__0__Impl rule__Interface_decl__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__0__Impl_in_rule__Interface_decl__Group_3__09028);
            rule__Interface_decl__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__1_in_rule__Interface_decl__Group_3__09031);
            rule__Interface_decl__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3__0"


    // $ANTLR start "rule__Interface_decl__Group_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4213:1: rule__Interface_decl__Group_3__0__Impl : ( ':' ) ;
    public final void rule__Interface_decl__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4217:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4218:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4218:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4219:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getColonKeyword_3_0()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Interface_decl__Group_3__0__Impl9059); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getColonKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3__0__Impl"


    // $ANTLR start "rule__Interface_decl__Group_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4232:1: rule__Interface_decl__Group_3__1 : rule__Interface_decl__Group_3__1__Impl rule__Interface_decl__Group_3__2 ;
    public final void rule__Interface_decl__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4236:1: ( rule__Interface_decl__Group_3__1__Impl rule__Interface_decl__Group_3__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4237:2: rule__Interface_decl__Group_3__1__Impl rule__Interface_decl__Group_3__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__1__Impl_in_rule__Interface_decl__Group_3__19090);
            rule__Interface_decl__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__2_in_rule__Interface_decl__Group_3__19093);
            rule__Interface_decl__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3__1"


    // $ANTLR start "rule__Interface_decl__Group_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4244:1: rule__Interface_decl__Group_3__1__Impl : ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) ) ;
    public final void rule__Interface_decl__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4248:1: ( ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4249:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4249:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4250:1: ( rule__Interface_decl__DerivesFromAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4251:1: ( rule__Interface_decl__DerivesFromAssignment_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4251:2: rule__Interface_decl__DerivesFromAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_1_in_rule__Interface_decl__Group_3__1__Impl9120);
            rule__Interface_decl__DerivesFromAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3__1__Impl"


    // $ANTLR start "rule__Interface_decl__Group_3__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4261:1: rule__Interface_decl__Group_3__2 : rule__Interface_decl__Group_3__2__Impl ;
    public final void rule__Interface_decl__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4265:1: ( rule__Interface_decl__Group_3__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4266:2: rule__Interface_decl__Group_3__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__2__Impl_in_rule__Interface_decl__Group_3__29150);
            rule__Interface_decl__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3__2"


    // $ANTLR start "rule__Interface_decl__Group_3__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4272:1: rule__Interface_decl__Group_3__2__Impl : ( ( rule__Interface_decl__Group_3_2__0 )* ) ;
    public final void rule__Interface_decl__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4276:1: ( ( ( rule__Interface_decl__Group_3_2__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4277:1: ( ( rule__Interface_decl__Group_3_2__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4277:1: ( ( rule__Interface_decl__Group_3_2__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4278:1: ( rule__Interface_decl__Group_3_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getGroup_3_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4279:1: ( rule__Interface_decl__Group_3_2__0 )*
            loop55:
            do {
                int alt55=2;
                int LA55_0 = input.LA(1);

                if ( (LA55_0==49) ) {
                    alt55=1;
                }


                switch (alt55) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4279:2: rule__Interface_decl__Group_3_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__0_in_rule__Interface_decl__Group_3__2__Impl9177);
            	    rule__Interface_decl__Group_3_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop55;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getGroup_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3__2__Impl"


    // $ANTLR start "rule__Interface_decl__Group_3_2__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4295:1: rule__Interface_decl__Group_3_2__0 : rule__Interface_decl__Group_3_2__0__Impl rule__Interface_decl__Group_3_2__1 ;
    public final void rule__Interface_decl__Group_3_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4299:1: ( rule__Interface_decl__Group_3_2__0__Impl rule__Interface_decl__Group_3_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4300:2: rule__Interface_decl__Group_3_2__0__Impl rule__Interface_decl__Group_3_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__0__Impl_in_rule__Interface_decl__Group_3_2__09214);
            rule__Interface_decl__Group_3_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__1_in_rule__Interface_decl__Group_3_2__09217);
            rule__Interface_decl__Group_3_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3_2__0"


    // $ANTLR start "rule__Interface_decl__Group_3_2__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4307:1: rule__Interface_decl__Group_3_2__0__Impl : ( ',' ) ;
    public final void rule__Interface_decl__Group_3_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4311:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4312:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4312:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4313:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getCommaKeyword_3_2_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Interface_decl__Group_3_2__0__Impl9245); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getCommaKeyword_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3_2__0__Impl"


    // $ANTLR start "rule__Interface_decl__Group_3_2__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4326:1: rule__Interface_decl__Group_3_2__1 : rule__Interface_decl__Group_3_2__1__Impl ;
    public final void rule__Interface_decl__Group_3_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4330:1: ( rule__Interface_decl__Group_3_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4331:2: rule__Interface_decl__Group_3_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__1__Impl_in_rule__Interface_decl__Group_3_2__19276);
            rule__Interface_decl__Group_3_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3_2__1"


    // $ANTLR start "rule__Interface_decl__Group_3_2__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4337:1: rule__Interface_decl__Group_3_2__1__Impl : ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) ) ;
    public final void rule__Interface_decl__Group_3_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4341:1: ( ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4342:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4342:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4343:1: ( rule__Interface_decl__DerivesFromAssignment_3_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4344:1: ( rule__Interface_decl__DerivesFromAssignment_3_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4344:2: rule__Interface_decl__DerivesFromAssignment_3_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_2_1_in_rule__Interface_decl__Group_3_2__1__Impl9303);
            rule__Interface_decl__DerivesFromAssignment_3_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__Group_3_2__1__Impl"


    // $ANTLR start "rule__Interface_fwd__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4358:1: rule__Interface_fwd__Group__0 : rule__Interface_fwd__Group__0__Impl rule__Interface_fwd__Group__1 ;
    public final void rule__Interface_fwd__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4362:1: ( rule__Interface_fwd__Group__0__Impl rule__Interface_fwd__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4363:2: rule__Interface_fwd__Group__0__Impl rule__Interface_fwd__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__0__Impl_in_rule__Interface_fwd__Group__09337);
            rule__Interface_fwd__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__1_in_rule__Interface_fwd__Group__09340);
            rule__Interface_fwd__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__Group__0"


    // $ANTLR start "rule__Interface_fwd__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4370:1: rule__Interface_fwd__Group__0__Impl : ( ( rule__Interface_fwd__Alternatives_0 )? ) ;
    public final void rule__Interface_fwd__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4374:1: ( ( ( rule__Interface_fwd__Alternatives_0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4375:1: ( ( rule__Interface_fwd__Alternatives_0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4375:1: ( ( rule__Interface_fwd__Alternatives_0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4376:1: ( rule__Interface_fwd__Alternatives_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getAlternatives_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4377:1: ( rule__Interface_fwd__Alternatives_0 )?
            int alt56=2;
            int LA56_0 = input.LA(1);

            if ( ((LA56_0>=30 && LA56_0<=31)) ) {
                alt56=1;
            }
            switch (alt56) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4377:2: rule__Interface_fwd__Alternatives_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Alternatives_0_in_rule__Interface_fwd__Group__0__Impl9367);
                    rule__Interface_fwd__Alternatives_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__Group__0__Impl"


    // $ANTLR start "rule__Interface_fwd__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4387:1: rule__Interface_fwd__Group__1 : rule__Interface_fwd__Group__1__Impl rule__Interface_fwd__Group__2 ;
    public final void rule__Interface_fwd__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4391:1: ( rule__Interface_fwd__Group__1__Impl rule__Interface_fwd__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4392:2: rule__Interface_fwd__Group__1__Impl rule__Interface_fwd__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__1__Impl_in_rule__Interface_fwd__Group__19398);
            rule__Interface_fwd__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__2_in_rule__Interface_fwd__Group__19401);
            rule__Interface_fwd__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__Group__1"


    // $ANTLR start "rule__Interface_fwd__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4399:1: rule__Interface_fwd__Group__1__Impl : ( 'interface' ) ;
    public final void rule__Interface_fwd__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4403:1: ( ( 'interface' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4404:1: ( 'interface' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4404:1: ( 'interface' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4405:1: 'interface'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getInterfaceKeyword_1()); 
            }
            match(input,47,FollowSets000.FOLLOW_47_in_rule__Interface_fwd__Group__1__Impl9429); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getInterfaceKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__Group__1__Impl"


    // $ANTLR start "rule__Interface_fwd__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4418:1: rule__Interface_fwd__Group__2 : rule__Interface_fwd__Group__2__Impl ;
    public final void rule__Interface_fwd__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4422:1: ( rule__Interface_fwd__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4423:2: rule__Interface_fwd__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__2__Impl_in_rule__Interface_fwd__Group__29460);
            rule__Interface_fwd__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__Group__2"


    // $ANTLR start "rule__Interface_fwd__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4429:1: rule__Interface_fwd__Group__2__Impl : ( ( rule__Interface_fwd__IdentifierAssignment_2 ) ) ;
    public final void rule__Interface_fwd__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4433:1: ( ( ( rule__Interface_fwd__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4434:1: ( ( rule__Interface_fwd__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4434:1: ( ( rule__Interface_fwd__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4435:1: ( rule__Interface_fwd__IdentifierAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4436:1: ( rule__Interface_fwd__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4436:2: rule__Interface_fwd__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__IdentifierAssignment_2_in_rule__Interface_fwd__Group__2__Impl9487);
            rule__Interface_fwd__IdentifierAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__Group__2__Impl"


    // $ANTLR start "rule__Export__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4452:1: rule__Export__Group_0__0 : rule__Export__Group_0__0__Impl rule__Export__Group_0__1 ;
    public final void rule__Export__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4456:1: ( rule__Export__Group_0__0__Impl rule__Export__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4457:2: rule__Export__Group_0__0__Impl rule__Export__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__0__Impl_in_rule__Export__Group_0__09523);
            rule__Export__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__1_in_rule__Export__Group_0__09526);
            rule__Export__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_0__0"


    // $ANTLR start "rule__Export__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4464:1: rule__Export__Group_0__0__Impl : ( ruletype_decl ) ;
    public final void rule__Export__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4468:1: ( ( ruletype_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4469:1: ( ruletype_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4469:1: ( ruletype_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4470:1: ruletype_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getType_declParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletype_decl_in_rule__Export__Group_0__0__Impl9553);
            ruletype_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getType_declParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_0__0__Impl"


    // $ANTLR start "rule__Export__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4481:1: rule__Export__Group_0__1 : rule__Export__Group_0__1__Impl ;
    public final void rule__Export__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4485:1: ( rule__Export__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4486:2: rule__Export__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__1__Impl_in_rule__Export__Group_0__19582);
            rule__Export__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_0__1"


    // $ANTLR start "rule__Export__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4492:1: rule__Export__Group_0__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4496:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4497:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4497:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4498:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_0_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_0__1__Impl9610); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_0__1__Impl"


    // $ANTLR start "rule__Export__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4515:1: rule__Export__Group_1__0 : rule__Export__Group_1__0__Impl rule__Export__Group_1__1 ;
    public final void rule__Export__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4519:1: ( rule__Export__Group_1__0__Impl rule__Export__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4520:2: rule__Export__Group_1__0__Impl rule__Export__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__0__Impl_in_rule__Export__Group_1__09645);
            rule__Export__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__1_in_rule__Export__Group_1__09648);
            rule__Export__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_1__0"


    // $ANTLR start "rule__Export__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4527:1: rule__Export__Group_1__0__Impl : ( ruleconst_decl ) ;
    public final void rule__Export__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4531:1: ( ( ruleconst_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4532:1: ( ruleconst_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4532:1: ( ruleconst_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4533:1: ruleconst_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getConst_declParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_decl_in_rule__Export__Group_1__0__Impl9675);
            ruleconst_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getConst_declParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_1__0__Impl"


    // $ANTLR start "rule__Export__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4544:1: rule__Export__Group_1__1 : rule__Export__Group_1__1__Impl ;
    public final void rule__Export__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4548:1: ( rule__Export__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4549:2: rule__Export__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__1__Impl_in_rule__Export__Group_1__19704);
            rule__Export__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_1__1"


    // $ANTLR start "rule__Export__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4555:1: rule__Export__Group_1__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4559:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4560:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4560:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4561:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_1_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_1__1__Impl9732); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_1__1__Impl"


    // $ANTLR start "rule__Export__Group_2__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4578:1: rule__Export__Group_2__0 : rule__Export__Group_2__0__Impl rule__Export__Group_2__1 ;
    public final void rule__Export__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4582:1: ( rule__Export__Group_2__0__Impl rule__Export__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4583:2: rule__Export__Group_2__0__Impl rule__Export__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__0__Impl_in_rule__Export__Group_2__09767);
            rule__Export__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__1_in_rule__Export__Group_2__09770);
            rule__Export__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_2__0"


    // $ANTLR start "rule__Export__Group_2__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4590:1: rule__Export__Group_2__0__Impl : ( ruleexcept_decl ) ;
    public final void rule__Export__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4594:1: ( ( ruleexcept_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4595:1: ( ruleexcept_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4595:1: ( ruleexcept_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4596:1: ruleexcept_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getExcept_declParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexcept_decl_in_rule__Export__Group_2__0__Impl9797);
            ruleexcept_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getExcept_declParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_2__0__Impl"


    // $ANTLR start "rule__Export__Group_2__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4607:1: rule__Export__Group_2__1 : rule__Export__Group_2__1__Impl ;
    public final void rule__Export__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4611:1: ( rule__Export__Group_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4612:2: rule__Export__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__1__Impl_in_rule__Export__Group_2__19826);
            rule__Export__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_2__1"


    // $ANTLR start "rule__Export__Group_2__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4618:1: rule__Export__Group_2__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4622:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4623:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4623:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4624:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_2_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_2__1__Impl9854); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_2__1__Impl"


    // $ANTLR start "rule__Export__Group_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4641:1: rule__Export__Group_3__0 : rule__Export__Group_3__0__Impl rule__Export__Group_3__1 ;
    public final void rule__Export__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4645:1: ( rule__Export__Group_3__0__Impl rule__Export__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4646:2: rule__Export__Group_3__0__Impl rule__Export__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__0__Impl_in_rule__Export__Group_3__09889);
            rule__Export__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__1_in_rule__Export__Group_3__09892);
            rule__Export__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_3__0"


    // $ANTLR start "rule__Export__Group_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4653:1: rule__Export__Group_3__0__Impl : ( ruleattr_decl ) ;
    public final void rule__Export__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4657:1: ( ( ruleattr_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4658:1: ( ruleattr_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4658:1: ( ruleattr_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4659:1: ruleattr_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getAttr_declParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleattr_decl_in_rule__Export__Group_3__0__Impl9919);
            ruleattr_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getAttr_declParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_3__0__Impl"


    // $ANTLR start "rule__Export__Group_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4670:1: rule__Export__Group_3__1 : rule__Export__Group_3__1__Impl ;
    public final void rule__Export__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4674:1: ( rule__Export__Group_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4675:2: rule__Export__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__1__Impl_in_rule__Export__Group_3__19948);
            rule__Export__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_3__1"


    // $ANTLR start "rule__Export__Group_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4681:1: rule__Export__Group_3__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4685:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4686:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4686:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4687:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_3_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_3__1__Impl9976); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_3__1__Impl"


    // $ANTLR start "rule__Export__Group_4__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4704:1: rule__Export__Group_4__0 : rule__Export__Group_4__0__Impl rule__Export__Group_4__1 ;
    public final void rule__Export__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4708:1: ( rule__Export__Group_4__0__Impl rule__Export__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4709:2: rule__Export__Group_4__0__Impl rule__Export__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__0__Impl_in_rule__Export__Group_4__010011);
            rule__Export__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__1_in_rule__Export__Group_4__010014);
            rule__Export__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_4__0"


    // $ANTLR start "rule__Export__Group_4__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4716:1: rule__Export__Group_4__0__Impl : ( ruleop_decl ) ;
    public final void rule__Export__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4720:1: ( ( ruleop_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4721:1: ( ruleop_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4721:1: ( ruleop_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4722:1: ruleop_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getOp_declParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleop_decl_in_rule__Export__Group_4__0__Impl10041);
            ruleop_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getOp_declParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_4__0__Impl"


    // $ANTLR start "rule__Export__Group_4__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4733:1: rule__Export__Group_4__1 : rule__Export__Group_4__1__Impl ;
    public final void rule__Export__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4737:1: ( rule__Export__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4738:2: rule__Export__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__1__Impl_in_rule__Export__Group_4__110070);
            rule__Export__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_4__1"


    // $ANTLR start "rule__Export__Group_4__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4744:1: rule__Export__Group_4__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4748:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4749:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4749:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4750:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_4_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_4__1__Impl10098); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Export__Group_4__1__Impl"


    // $ANTLR start "rule__Op_decl__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4767:1: rule__Op_decl__Group__0 : rule__Op_decl__Group__0__Impl rule__Op_decl__Group__1 ;
    public final void rule__Op_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4771:1: ( rule__Op_decl__Group__0__Impl rule__Op_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4772:2: rule__Op_decl__Group__0__Impl rule__Op_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__0__Impl_in_rule__Op_decl__Group__010133);
            rule__Op_decl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__1_in_rule__Op_decl__Group__010136);
            rule__Op_decl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__0"


    // $ANTLR start "rule__Op_decl__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4779:1: rule__Op_decl__Group__0__Impl : ( ( rule__Op_decl__IsOnewayAssignment_0 )? ) ;
    public final void rule__Op_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4783:1: ( ( ( rule__Op_decl__IsOnewayAssignment_0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4784:1: ( ( rule__Op_decl__IsOnewayAssignment_0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4784:1: ( ( rule__Op_decl__IsOnewayAssignment_0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4785:1: ( rule__Op_decl__IsOnewayAssignment_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIsOnewayAssignment_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4786:1: ( rule__Op_decl__IsOnewayAssignment_0 )?
            int alt57=2;
            int LA57_0 = input.LA(1);

            if ( (LA57_0==74) ) {
                alt57=1;
            }
            switch (alt57) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4786:2: rule__Op_decl__IsOnewayAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__IsOnewayAssignment_0_in_rule__Op_decl__Group__0__Impl10163);
                    rule__Op_decl__IsOnewayAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIsOnewayAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__0__Impl"


    // $ANTLR start "rule__Op_decl__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4796:1: rule__Op_decl__Group__1 : rule__Op_decl__Group__1__Impl rule__Op_decl__Group__2 ;
    public final void rule__Op_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4800:1: ( rule__Op_decl__Group__1__Impl rule__Op_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4801:2: rule__Op_decl__Group__1__Impl rule__Op_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__1__Impl_in_rule__Op_decl__Group__110194);
            rule__Op_decl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__2_in_rule__Op_decl__Group__110197);
            rule__Op_decl__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__1"


    // $ANTLR start "rule__Op_decl__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4808:1: rule__Op_decl__Group__1__Impl : ( ( rule__Op_decl__Alternatives_1 ) ) ;
    public final void rule__Op_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4812:1: ( ( ( rule__Op_decl__Alternatives_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4813:1: ( ( rule__Op_decl__Alternatives_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4813:1: ( ( rule__Op_decl__Alternatives_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4814:1: ( rule__Op_decl__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getAlternatives_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4815:1: ( rule__Op_decl__Alternatives_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4815:2: rule__Op_decl__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Alternatives_1_in_rule__Op_decl__Group__1__Impl10224);
            rule__Op_decl__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__1__Impl"


    // $ANTLR start "rule__Op_decl__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4825:1: rule__Op_decl__Group__2 : rule__Op_decl__Group__2__Impl rule__Op_decl__Group__3 ;
    public final void rule__Op_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4829:1: ( rule__Op_decl__Group__2__Impl rule__Op_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4830:2: rule__Op_decl__Group__2__Impl rule__Op_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__2__Impl_in_rule__Op_decl__Group__210254);
            rule__Op_decl__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__3_in_rule__Op_decl__Group__210257);
            rule__Op_decl__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__2"


    // $ANTLR start "rule__Op_decl__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4837:1: rule__Op_decl__Group__2__Impl : ( ( rule__Op_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Op_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4841:1: ( ( ( rule__Op_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4842:1: ( ( rule__Op_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4842:1: ( ( rule__Op_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4843:1: ( rule__Op_decl__IdentifierAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4844:1: ( rule__Op_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4844:2: rule__Op_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__IdentifierAssignment_2_in_rule__Op_decl__Group__2__Impl10284);
            rule__Op_decl__IdentifierAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__2__Impl"


    // $ANTLR start "rule__Op_decl__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4854:1: rule__Op_decl__Group__3 : rule__Op_decl__Group__3__Impl rule__Op_decl__Group__4 ;
    public final void rule__Op_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4858:1: ( rule__Op_decl__Group__3__Impl rule__Op_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4859:2: rule__Op_decl__Group__3__Impl rule__Op_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__3__Impl_in_rule__Op_decl__Group__310314);
            rule__Op_decl__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__4_in_rule__Op_decl__Group__310317);
            rule__Op_decl__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__3"


    // $ANTLR start "rule__Op_decl__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4866:1: rule__Op_decl__Group__3__Impl : ( '(' ) ;
    public final void rule__Op_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4870:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4871:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4871:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4872:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_3()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Op_decl__Group__3__Impl10345); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__3__Impl"


    // $ANTLR start "rule__Op_decl__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4885:1: rule__Op_decl__Group__4 : rule__Op_decl__Group__4__Impl rule__Op_decl__Group__5 ;
    public final void rule__Op_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4889:1: ( rule__Op_decl__Group__4__Impl rule__Op_decl__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4890:2: rule__Op_decl__Group__4__Impl rule__Op_decl__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__4__Impl_in_rule__Op_decl__Group__410376);
            rule__Op_decl__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__5_in_rule__Op_decl__Group__410379);
            rule__Op_decl__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__4"


    // $ANTLR start "rule__Op_decl__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4897:1: rule__Op_decl__Group__4__Impl : ( ( rule__Op_decl__Group_4__0 )? ) ;
    public final void rule__Op_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4901:1: ( ( ( rule__Op_decl__Group_4__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4902:1: ( ( rule__Op_decl__Group_4__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4902:1: ( ( rule__Op_decl__Group_4__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4903:1: ( rule__Op_decl__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4904:1: ( rule__Op_decl__Group_4__0 )?
            int alt58=2;
            int LA58_0 = input.LA(1);

            if ( ((LA58_0>=40 && LA58_0<=42)) ) {
                alt58=1;
            }
            switch (alt58) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4904:2: rule__Op_decl__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__0_in_rule__Op_decl__Group__4__Impl10406);
                    rule__Op_decl__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__4__Impl"


    // $ANTLR start "rule__Op_decl__Group__5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4914:1: rule__Op_decl__Group__5 : rule__Op_decl__Group__5__Impl rule__Op_decl__Group__6 ;
    public final void rule__Op_decl__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4918:1: ( rule__Op_decl__Group__5__Impl rule__Op_decl__Group__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4919:2: rule__Op_decl__Group__5__Impl rule__Op_decl__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__5__Impl_in_rule__Op_decl__Group__510437);
            rule__Op_decl__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__6_in_rule__Op_decl__Group__510440);
            rule__Op_decl__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__5"


    // $ANTLR start "rule__Op_decl__Group__5__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4926:1: rule__Op_decl__Group__5__Impl : ( ')' ) ;
    public final void rule__Op_decl__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4930:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4931:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4931:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4932:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Op_decl__Group__5__Impl10468); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__5__Impl"


    // $ANTLR start "rule__Op_decl__Group__6"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4945:1: rule__Op_decl__Group__6 : rule__Op_decl__Group__6__Impl rule__Op_decl__Group__7 ;
    public final void rule__Op_decl__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4949:1: ( rule__Op_decl__Group__6__Impl rule__Op_decl__Group__7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4950:2: rule__Op_decl__Group__6__Impl rule__Op_decl__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__6__Impl_in_rule__Op_decl__Group__610499);
            rule__Op_decl__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__7_in_rule__Op_decl__Group__610502);
            rule__Op_decl__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__6"


    // $ANTLR start "rule__Op_decl__Group__6__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4957:1: rule__Op_decl__Group__6__Impl : ( ( rule__Op_decl__Group_6__0 )? ) ;
    public final void rule__Op_decl__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4961:1: ( ( ( rule__Op_decl__Group_6__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4962:1: ( ( rule__Op_decl__Group_6__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4962:1: ( ( rule__Op_decl__Group_6__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4963:1: ( rule__Op_decl__Group_6__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_6()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4964:1: ( rule__Op_decl__Group_6__0 )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==52) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4964:2: rule__Op_decl__Group_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__0_in_rule__Op_decl__Group__6__Impl10529);
                    rule__Op_decl__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__6__Impl"


    // $ANTLR start "rule__Op_decl__Group__7"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4974:1: rule__Op_decl__Group__7 : rule__Op_decl__Group__7__Impl ;
    public final void rule__Op_decl__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4978:1: ( rule__Op_decl__Group__7__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4979:2: rule__Op_decl__Group__7__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__7__Impl_in_rule__Op_decl__Group__710560);
            rule__Op_decl__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__7"


    // $ANTLR start "rule__Op_decl__Group__7__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4985:1: rule__Op_decl__Group__7__Impl : ( ( rule__Op_decl__Group_7__0 )? ) ;
    public final void rule__Op_decl__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4989:1: ( ( ( rule__Op_decl__Group_7__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4990:1: ( ( rule__Op_decl__Group_7__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4990:1: ( ( rule__Op_decl__Group_7__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4991:1: ( rule__Op_decl__Group_7__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4992:1: ( rule__Op_decl__Group_7__0 )?
            int alt60=2;
            int LA60_0 = input.LA(1);

            if ( (LA60_0==53) ) {
                alt60=1;
            }
            switch (alt60) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4992:2: rule__Op_decl__Group_7__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__0_in_rule__Op_decl__Group__7__Impl10587);
                    rule__Op_decl__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group__7__Impl"


    // $ANTLR start "rule__Op_decl__Group_4__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5018:1: rule__Op_decl__Group_4__0 : rule__Op_decl__Group_4__0__Impl rule__Op_decl__Group_4__1 ;
    public final void rule__Op_decl__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5022:1: ( rule__Op_decl__Group_4__0__Impl rule__Op_decl__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5023:2: rule__Op_decl__Group_4__0__Impl rule__Op_decl__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__0__Impl_in_rule__Op_decl__Group_4__010634);
            rule__Op_decl__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__1_in_rule__Op_decl__Group_4__010637);
            rule__Op_decl__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4__0"


    // $ANTLR start "rule__Op_decl__Group_4__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5030:1: rule__Op_decl__Group_4__0__Impl : ( ( rule__Op_decl__ParametersAssignment_4_0 ) ) ;
    public final void rule__Op_decl__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5034:1: ( ( ( rule__Op_decl__ParametersAssignment_4_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5035:1: ( ( rule__Op_decl__ParametersAssignment_4_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5035:1: ( ( rule__Op_decl__ParametersAssignment_4_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5036:1: ( rule__Op_decl__ParametersAssignment_4_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersAssignment_4_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5037:1: ( rule__Op_decl__ParametersAssignment_4_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5037:2: rule__Op_decl__ParametersAssignment_4_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ParametersAssignment_4_0_in_rule__Op_decl__Group_4__0__Impl10664);
            rule__Op_decl__ParametersAssignment_4_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersAssignment_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4__0__Impl"


    // $ANTLR start "rule__Op_decl__Group_4__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5047:1: rule__Op_decl__Group_4__1 : rule__Op_decl__Group_4__1__Impl ;
    public final void rule__Op_decl__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5051:1: ( rule__Op_decl__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5052:2: rule__Op_decl__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__1__Impl_in_rule__Op_decl__Group_4__110694);
            rule__Op_decl__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4__1"


    // $ANTLR start "rule__Op_decl__Group_4__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5058:1: rule__Op_decl__Group_4__1__Impl : ( ( rule__Op_decl__Group_4_1__0 )* ) ;
    public final void rule__Op_decl__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5062:1: ( ( ( rule__Op_decl__Group_4_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5063:1: ( ( rule__Op_decl__Group_4_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5063:1: ( ( rule__Op_decl__Group_4_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5064:1: ( rule__Op_decl__Group_4_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_4_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5065:1: ( rule__Op_decl__Group_4_1__0 )*
            loop61:
            do {
                int alt61=2;
                int LA61_0 = input.LA(1);

                if ( (LA61_0==49) ) {
                    alt61=1;
                }


                switch (alt61) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5065:2: rule__Op_decl__Group_4_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__0_in_rule__Op_decl__Group_4__1__Impl10721);
            	    rule__Op_decl__Group_4_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop61;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4__1__Impl"


    // $ANTLR start "rule__Op_decl__Group_4_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5079:1: rule__Op_decl__Group_4_1__0 : rule__Op_decl__Group_4_1__0__Impl rule__Op_decl__Group_4_1__1 ;
    public final void rule__Op_decl__Group_4_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5083:1: ( rule__Op_decl__Group_4_1__0__Impl rule__Op_decl__Group_4_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5084:2: rule__Op_decl__Group_4_1__0__Impl rule__Op_decl__Group_4_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__0__Impl_in_rule__Op_decl__Group_4_1__010756);
            rule__Op_decl__Group_4_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__1_in_rule__Op_decl__Group_4_1__010759);
            rule__Op_decl__Group_4_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4_1__0"


    // $ANTLR start "rule__Op_decl__Group_4_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5091:1: rule__Op_decl__Group_4_1__0__Impl : ( ',' ) ;
    public final void rule__Op_decl__Group_4_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5095:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5096:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5096:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5097:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCommaKeyword_4_1_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Op_decl__Group_4_1__0__Impl10787); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCommaKeyword_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4_1__0__Impl"


    // $ANTLR start "rule__Op_decl__Group_4_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5110:1: rule__Op_decl__Group_4_1__1 : rule__Op_decl__Group_4_1__1__Impl ;
    public final void rule__Op_decl__Group_4_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5114:1: ( rule__Op_decl__Group_4_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5115:2: rule__Op_decl__Group_4_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__1__Impl_in_rule__Op_decl__Group_4_1__110818);
            rule__Op_decl__Group_4_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4_1__1"


    // $ANTLR start "rule__Op_decl__Group_4_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5121:1: rule__Op_decl__Group_4_1__1__Impl : ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) ) ;
    public final void rule__Op_decl__Group_4_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5125:1: ( ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5126:1: ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5126:1: ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5127:1: ( rule__Op_decl__ParametersAssignment_4_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersAssignment_4_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5128:1: ( rule__Op_decl__ParametersAssignment_4_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5128:2: rule__Op_decl__ParametersAssignment_4_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ParametersAssignment_4_1_1_in_rule__Op_decl__Group_4_1__1__Impl10845);
            rule__Op_decl__ParametersAssignment_4_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersAssignment_4_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_4_1__1__Impl"


    // $ANTLR start "rule__Op_decl__Group_6__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5142:1: rule__Op_decl__Group_6__0 : rule__Op_decl__Group_6__0__Impl rule__Op_decl__Group_6__1 ;
    public final void rule__Op_decl__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5146:1: ( rule__Op_decl__Group_6__0__Impl rule__Op_decl__Group_6__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5147:2: rule__Op_decl__Group_6__0__Impl rule__Op_decl__Group_6__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__0__Impl_in_rule__Op_decl__Group_6__010879);
            rule__Op_decl__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__1_in_rule__Op_decl__Group_6__010882);
            rule__Op_decl__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__0"


    // $ANTLR start "rule__Op_decl__Group_6__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5154:1: rule__Op_decl__Group_6__0__Impl : ( 'raises' ) ;
    public final void rule__Op_decl__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5158:1: ( ( 'raises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5159:1: ( 'raises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5159:1: ( 'raises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5160:1: 'raises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRaisesKeyword_6_0()); 
            }
            match(input,52,FollowSets000.FOLLOW_52_in_rule__Op_decl__Group_6__0__Impl10910); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRaisesKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__0__Impl"


    // $ANTLR start "rule__Op_decl__Group_6__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5173:1: rule__Op_decl__Group_6__1 : rule__Op_decl__Group_6__1__Impl rule__Op_decl__Group_6__2 ;
    public final void rule__Op_decl__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5177:1: ( rule__Op_decl__Group_6__1__Impl rule__Op_decl__Group_6__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5178:2: rule__Op_decl__Group_6__1__Impl rule__Op_decl__Group_6__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__1__Impl_in_rule__Op_decl__Group_6__110941);
            rule__Op_decl__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__2_in_rule__Op_decl__Group_6__110944);
            rule__Op_decl__Group_6__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__1"


    // $ANTLR start "rule__Op_decl__Group_6__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5185:1: rule__Op_decl__Group_6__1__Impl : ( '(' ) ;
    public final void rule__Op_decl__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5189:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5190:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5190:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5191:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_6_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Op_decl__Group_6__1__Impl10972); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__1__Impl"


    // $ANTLR start "rule__Op_decl__Group_6__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5204:1: rule__Op_decl__Group_6__2 : rule__Op_decl__Group_6__2__Impl rule__Op_decl__Group_6__3 ;
    public final void rule__Op_decl__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5208:1: ( rule__Op_decl__Group_6__2__Impl rule__Op_decl__Group_6__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5209:2: rule__Op_decl__Group_6__2__Impl rule__Op_decl__Group_6__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__2__Impl_in_rule__Op_decl__Group_6__211003);
            rule__Op_decl__Group_6__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__3_in_rule__Op_decl__Group_6__211006);
            rule__Op_decl__Group_6__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__2"


    // $ANTLR start "rule__Op_decl__Group_6__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5216:1: rule__Op_decl__Group_6__2__Impl : ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) ) ;
    public final void rule__Op_decl__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5220:1: ( ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5221:1: ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5221:1: ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5222:1: ( rule__Op_decl__CanRaiseAssignment_6_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5223:1: ( rule__Op_decl__CanRaiseAssignment_6_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5223:2: rule__Op_decl__CanRaiseAssignment_6_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__CanRaiseAssignment_6_2_in_rule__Op_decl__Group_6__2__Impl11033);
            rule__Op_decl__CanRaiseAssignment_6_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__2__Impl"


    // $ANTLR start "rule__Op_decl__Group_6__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5233:1: rule__Op_decl__Group_6__3 : rule__Op_decl__Group_6__3__Impl rule__Op_decl__Group_6__4 ;
    public final void rule__Op_decl__Group_6__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5237:1: ( rule__Op_decl__Group_6__3__Impl rule__Op_decl__Group_6__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5238:2: rule__Op_decl__Group_6__3__Impl rule__Op_decl__Group_6__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__3__Impl_in_rule__Op_decl__Group_6__311063);
            rule__Op_decl__Group_6__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__4_in_rule__Op_decl__Group_6__311066);
            rule__Op_decl__Group_6__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__3"


    // $ANTLR start "rule__Op_decl__Group_6__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5245:1: rule__Op_decl__Group_6__3__Impl : ( ( rule__Op_decl__Group_6_3__0 )* ) ;
    public final void rule__Op_decl__Group_6__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5249:1: ( ( ( rule__Op_decl__Group_6_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5250:1: ( ( rule__Op_decl__Group_6_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5250:1: ( ( rule__Op_decl__Group_6_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5251:1: ( rule__Op_decl__Group_6_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_6_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5252:1: ( rule__Op_decl__Group_6_3__0 )*
            loop62:
            do {
                int alt62=2;
                int LA62_0 = input.LA(1);

                if ( (LA62_0==49) ) {
                    alt62=1;
                }


                switch (alt62) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5252:2: rule__Op_decl__Group_6_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__0_in_rule__Op_decl__Group_6__3__Impl11093);
            	    rule__Op_decl__Group_6_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop62;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_6_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__3__Impl"


    // $ANTLR start "rule__Op_decl__Group_6__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5262:1: rule__Op_decl__Group_6__4 : rule__Op_decl__Group_6__4__Impl ;
    public final void rule__Op_decl__Group_6__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5266:1: ( rule__Op_decl__Group_6__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5267:2: rule__Op_decl__Group_6__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__4__Impl_in_rule__Op_decl__Group_6__411124);
            rule__Op_decl__Group_6__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__4"


    // $ANTLR start "rule__Op_decl__Group_6__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5273:1: rule__Op_decl__Group_6__4__Impl : ( ')' ) ;
    public final void rule__Op_decl__Group_6__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5277:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5278:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5278:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5279:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_6_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Op_decl__Group_6__4__Impl11152); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_6_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6__4__Impl"


    // $ANTLR start "rule__Op_decl__Group_6_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5302:1: rule__Op_decl__Group_6_3__0 : rule__Op_decl__Group_6_3__0__Impl rule__Op_decl__Group_6_3__1 ;
    public final void rule__Op_decl__Group_6_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5306:1: ( rule__Op_decl__Group_6_3__0__Impl rule__Op_decl__Group_6_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5307:2: rule__Op_decl__Group_6_3__0__Impl rule__Op_decl__Group_6_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__0__Impl_in_rule__Op_decl__Group_6_3__011193);
            rule__Op_decl__Group_6_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__1_in_rule__Op_decl__Group_6_3__011196);
            rule__Op_decl__Group_6_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6_3__0"


    // $ANTLR start "rule__Op_decl__Group_6_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5314:1: rule__Op_decl__Group_6_3__0__Impl : ( ',' ) ;
    public final void rule__Op_decl__Group_6_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5318:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5319:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5319:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5320:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCommaKeyword_6_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Op_decl__Group_6_3__0__Impl11224); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCommaKeyword_6_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6_3__0__Impl"


    // $ANTLR start "rule__Op_decl__Group_6_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5333:1: rule__Op_decl__Group_6_3__1 : rule__Op_decl__Group_6_3__1__Impl ;
    public final void rule__Op_decl__Group_6_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5337:1: ( rule__Op_decl__Group_6_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5338:2: rule__Op_decl__Group_6_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__1__Impl_in_rule__Op_decl__Group_6_3__111255);
            rule__Op_decl__Group_6_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6_3__1"


    // $ANTLR start "rule__Op_decl__Group_6_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5344:1: rule__Op_decl__Group_6_3__1__Impl : ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) ) ;
    public final void rule__Op_decl__Group_6_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5348:1: ( ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5349:1: ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5349:1: ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5350:1: ( rule__Op_decl__CanRaiseAssignment_6_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5351:1: ( rule__Op_decl__CanRaiseAssignment_6_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5351:2: rule__Op_decl__CanRaiseAssignment_6_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__CanRaiseAssignment_6_3_1_in_rule__Op_decl__Group_6_3__1__Impl11282);
            rule__Op_decl__CanRaiseAssignment_6_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_6_3__1__Impl"


    // $ANTLR start "rule__Op_decl__Group_7__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5365:1: rule__Op_decl__Group_7__0 : rule__Op_decl__Group_7__0__Impl rule__Op_decl__Group_7__1 ;
    public final void rule__Op_decl__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5369:1: ( rule__Op_decl__Group_7__0__Impl rule__Op_decl__Group_7__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5370:2: rule__Op_decl__Group_7__0__Impl rule__Op_decl__Group_7__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__0__Impl_in_rule__Op_decl__Group_7__011316);
            rule__Op_decl__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__1_in_rule__Op_decl__Group_7__011319);
            rule__Op_decl__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__0"


    // $ANTLR start "rule__Op_decl__Group_7__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5377:1: rule__Op_decl__Group_7__0__Impl : ( 'context' ) ;
    public final void rule__Op_decl__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5381:1: ( ( 'context' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5382:1: ( 'context' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5382:1: ( 'context' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5383:1: 'context'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextKeyword_7_0()); 
            }
            match(input,53,FollowSets000.FOLLOW_53_in_rule__Op_decl__Group_7__0__Impl11347); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextKeyword_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__0__Impl"


    // $ANTLR start "rule__Op_decl__Group_7__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5396:1: rule__Op_decl__Group_7__1 : rule__Op_decl__Group_7__1__Impl rule__Op_decl__Group_7__2 ;
    public final void rule__Op_decl__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5400:1: ( rule__Op_decl__Group_7__1__Impl rule__Op_decl__Group_7__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5401:2: rule__Op_decl__Group_7__1__Impl rule__Op_decl__Group_7__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__1__Impl_in_rule__Op_decl__Group_7__111378);
            rule__Op_decl__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__2_in_rule__Op_decl__Group_7__111381);
            rule__Op_decl__Group_7__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__1"


    // $ANTLR start "rule__Op_decl__Group_7__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5408:1: rule__Op_decl__Group_7__1__Impl : ( '(' ) ;
    public final void rule__Op_decl__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5412:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5413:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5413:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5414:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_7_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Op_decl__Group_7__1__Impl11409); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__1__Impl"


    // $ANTLR start "rule__Op_decl__Group_7__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5427:1: rule__Op_decl__Group_7__2 : rule__Op_decl__Group_7__2__Impl rule__Op_decl__Group_7__3 ;
    public final void rule__Op_decl__Group_7__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5431:1: ( rule__Op_decl__Group_7__2__Impl rule__Op_decl__Group_7__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5432:2: rule__Op_decl__Group_7__2__Impl rule__Op_decl__Group_7__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__2__Impl_in_rule__Op_decl__Group_7__211440);
            rule__Op_decl__Group_7__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__3_in_rule__Op_decl__Group_7__211443);
            rule__Op_decl__Group_7__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__2"


    // $ANTLR start "rule__Op_decl__Group_7__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5439:1: rule__Op_decl__Group_7__2__Impl : ( ( rule__Op_decl__ContextsAssignment_7_2 ) ) ;
    public final void rule__Op_decl__Group_7__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5443:1: ( ( ( rule__Op_decl__ContextsAssignment_7_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5444:1: ( ( rule__Op_decl__ContextsAssignment_7_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5444:1: ( ( rule__Op_decl__ContextsAssignment_7_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5445:1: ( rule__Op_decl__ContextsAssignment_7_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsAssignment_7_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5446:1: ( rule__Op_decl__ContextsAssignment_7_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5446:2: rule__Op_decl__ContextsAssignment_7_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ContextsAssignment_7_2_in_rule__Op_decl__Group_7__2__Impl11470);
            rule__Op_decl__ContextsAssignment_7_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsAssignment_7_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__2__Impl"


    // $ANTLR start "rule__Op_decl__Group_7__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5456:1: rule__Op_decl__Group_7__3 : rule__Op_decl__Group_7__3__Impl rule__Op_decl__Group_7__4 ;
    public final void rule__Op_decl__Group_7__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5460:1: ( rule__Op_decl__Group_7__3__Impl rule__Op_decl__Group_7__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5461:2: rule__Op_decl__Group_7__3__Impl rule__Op_decl__Group_7__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__3__Impl_in_rule__Op_decl__Group_7__311500);
            rule__Op_decl__Group_7__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__4_in_rule__Op_decl__Group_7__311503);
            rule__Op_decl__Group_7__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__3"


    // $ANTLR start "rule__Op_decl__Group_7__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5468:1: rule__Op_decl__Group_7__3__Impl : ( ( rule__Op_decl__Group_7_3__0 )* ) ;
    public final void rule__Op_decl__Group_7__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5472:1: ( ( ( rule__Op_decl__Group_7_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5473:1: ( ( rule__Op_decl__Group_7_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5473:1: ( ( rule__Op_decl__Group_7_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5474:1: ( rule__Op_decl__Group_7_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_7_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5475:1: ( rule__Op_decl__Group_7_3__0 )*
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( (LA63_0==49) ) {
                    alt63=1;
                }


                switch (alt63) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5475:2: rule__Op_decl__Group_7_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__0_in_rule__Op_decl__Group_7__3__Impl11530);
            	    rule__Op_decl__Group_7_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop63;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_7_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__3__Impl"


    // $ANTLR start "rule__Op_decl__Group_7__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5485:1: rule__Op_decl__Group_7__4 : rule__Op_decl__Group_7__4__Impl ;
    public final void rule__Op_decl__Group_7__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5489:1: ( rule__Op_decl__Group_7__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5490:2: rule__Op_decl__Group_7__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__4__Impl_in_rule__Op_decl__Group_7__411561);
            rule__Op_decl__Group_7__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__4"


    // $ANTLR start "rule__Op_decl__Group_7__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5496:1: rule__Op_decl__Group_7__4__Impl : ( ')' ) ;
    public final void rule__Op_decl__Group_7__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5500:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5501:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5501:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5502:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_7_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Op_decl__Group_7__4__Impl11589); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_7_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7__4__Impl"


    // $ANTLR start "rule__Op_decl__Group_7_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5525:1: rule__Op_decl__Group_7_3__0 : rule__Op_decl__Group_7_3__0__Impl rule__Op_decl__Group_7_3__1 ;
    public final void rule__Op_decl__Group_7_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5529:1: ( rule__Op_decl__Group_7_3__0__Impl rule__Op_decl__Group_7_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5530:2: rule__Op_decl__Group_7_3__0__Impl rule__Op_decl__Group_7_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__0__Impl_in_rule__Op_decl__Group_7_3__011630);
            rule__Op_decl__Group_7_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__1_in_rule__Op_decl__Group_7_3__011633);
            rule__Op_decl__Group_7_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7_3__0"


    // $ANTLR start "rule__Op_decl__Group_7_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5537:1: rule__Op_decl__Group_7_3__0__Impl : ( ',' ) ;
    public final void rule__Op_decl__Group_7_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5541:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5542:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5542:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5543:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCommaKeyword_7_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Op_decl__Group_7_3__0__Impl11661); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCommaKeyword_7_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7_3__0__Impl"


    // $ANTLR start "rule__Op_decl__Group_7_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5556:1: rule__Op_decl__Group_7_3__1 : rule__Op_decl__Group_7_3__1__Impl ;
    public final void rule__Op_decl__Group_7_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5560:1: ( rule__Op_decl__Group_7_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5561:2: rule__Op_decl__Group_7_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__1__Impl_in_rule__Op_decl__Group_7_3__111692);
            rule__Op_decl__Group_7_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7_3__1"


    // $ANTLR start "rule__Op_decl__Group_7_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5567:1: rule__Op_decl__Group_7_3__1__Impl : ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) ) ;
    public final void rule__Op_decl__Group_7_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5571:1: ( ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5572:1: ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5572:1: ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5573:1: ( rule__Op_decl__ContextsAssignment_7_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsAssignment_7_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5574:1: ( rule__Op_decl__ContextsAssignment_7_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5574:2: rule__Op_decl__ContextsAssignment_7_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ContextsAssignment_7_3_1_in_rule__Op_decl__Group_7_3__1__Impl11719);
            rule__Op_decl__ContextsAssignment_7_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsAssignment_7_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__Group_7_3__1__Impl"


    // $ANTLR start "rule__Op_type_spec__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5588:1: rule__Op_type_spec__Group_1__0 : rule__Op_type_spec__Group_1__0__Impl rule__Op_type_spec__Group_1__1 ;
    public final void rule__Op_type_spec__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5592:1: ( rule__Op_type_spec__Group_1__0__Impl rule__Op_type_spec__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5593:2: rule__Op_type_spec__Group_1__0__Impl rule__Op_type_spec__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__0__Impl_in_rule__Op_type_spec__Group_1__011753);
            rule__Op_type_spec__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__1_in_rule__Op_type_spec__Group_1__011756);
            rule__Op_type_spec__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_type_spec__Group_1__0"


    // $ANTLR start "rule__Op_type_spec__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5600:1: rule__Op_type_spec__Group_1__0__Impl : ( () ) ;
    public final void rule__Op_type_spec__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5604:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5605:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5605:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5606:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getPrimitiveDefAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5607:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5609:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getPrimitiveDefAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_type_spec__Group_1__0__Impl"


    // $ANTLR start "rule__Op_type_spec__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5619:1: rule__Op_type_spec__Group_1__1 : rule__Op_type_spec__Group_1__1__Impl ;
    public final void rule__Op_type_spec__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5623:1: ( rule__Op_type_spec__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5624:2: rule__Op_type_spec__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__1__Impl_in_rule__Op_type_spec__Group_1__111814);
            rule__Op_type_spec__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_type_spec__Group_1__1"


    // $ANTLR start "rule__Op_type_spec__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5630:1: rule__Op_type_spec__Group_1__1__Impl : ( ( rule__Op_type_spec__KindAssignment_1_1 ) ) ;
    public final void rule__Op_type_spec__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5634:1: ( ( ( rule__Op_type_spec__KindAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5635:1: ( ( rule__Op_type_spec__KindAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5635:1: ( ( rule__Op_type_spec__KindAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5636:1: ( rule__Op_type_spec__KindAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getKindAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5637:1: ( rule__Op_type_spec__KindAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5637:2: rule__Op_type_spec__KindAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__KindAssignment_1_1_in_rule__Op_type_spec__Group_1__1__Impl11841);
            rule__Op_type_spec__KindAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getKindAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_type_spec__Group_1__1__Impl"


    // $ANTLR start "rule__Param_decl__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5651:1: rule__Param_decl__Group__0 : rule__Param_decl__Group__0__Impl rule__Param_decl__Group__1 ;
    public final void rule__Param_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5655:1: ( rule__Param_decl__Group__0__Impl rule__Param_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5656:2: rule__Param_decl__Group__0__Impl rule__Param_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__0__Impl_in_rule__Param_decl__Group__011875);
            rule__Param_decl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__1_in_rule__Param_decl__Group__011878);
            rule__Param_decl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__Group__0"


    // $ANTLR start "rule__Param_decl__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5663:1: rule__Param_decl__Group__0__Impl : ( ( rule__Param_decl__DirectionAssignment_0 ) ) ;
    public final void rule__Param_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5667:1: ( ( ( rule__Param_decl__DirectionAssignment_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5668:1: ( ( rule__Param_decl__DirectionAssignment_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5668:1: ( ( rule__Param_decl__DirectionAssignment_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5669:1: ( rule__Param_decl__DirectionAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getDirectionAssignment_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5670:1: ( rule__Param_decl__DirectionAssignment_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5670:2: rule__Param_decl__DirectionAssignment_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__DirectionAssignment_0_in_rule__Param_decl__Group__0__Impl11905);
            rule__Param_decl__DirectionAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getDirectionAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__Group__0__Impl"


    // $ANTLR start "rule__Param_decl__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5680:1: rule__Param_decl__Group__1 : rule__Param_decl__Group__1__Impl rule__Param_decl__Group__2 ;
    public final void rule__Param_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5684:1: ( rule__Param_decl__Group__1__Impl rule__Param_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5685:2: rule__Param_decl__Group__1__Impl rule__Param_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__1__Impl_in_rule__Param_decl__Group__111935);
            rule__Param_decl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__2_in_rule__Param_decl__Group__111938);
            rule__Param_decl__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__Group__1"


    // $ANTLR start "rule__Param_decl__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5692:1: rule__Param_decl__Group__1__Impl : ( ( rule__Param_decl__Alternatives_1 ) ) ;
    public final void rule__Param_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5696:1: ( ( ( rule__Param_decl__Alternatives_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5697:1: ( ( rule__Param_decl__Alternatives_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5697:1: ( ( rule__Param_decl__Alternatives_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5698:1: ( rule__Param_decl__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getAlternatives_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5699:1: ( rule__Param_decl__Alternatives_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5699:2: rule__Param_decl__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Alternatives_1_in_rule__Param_decl__Group__1__Impl11965);
            rule__Param_decl__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__Group__1__Impl"


    // $ANTLR start "rule__Param_decl__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5709:1: rule__Param_decl__Group__2 : rule__Param_decl__Group__2__Impl ;
    public final void rule__Param_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5713:1: ( rule__Param_decl__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5714:2: rule__Param_decl__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__2__Impl_in_rule__Param_decl__Group__211995);
            rule__Param_decl__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__Group__2"


    // $ANTLR start "rule__Param_decl__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5720:1: rule__Param_decl__Group__2__Impl : ( ( rule__Param_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Param_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5724:1: ( ( ( rule__Param_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5725:1: ( ( rule__Param_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5725:1: ( ( rule__Param_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5726:1: ( rule__Param_decl__IdentifierAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5727:1: ( rule__Param_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5727:2: rule__Param_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__IdentifierAssignment_2_in_rule__Param_decl__Group__2__Impl12022);
            rule__Param_decl__IdentifierAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__Group__2__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5743:1: rule__Readonly_attr_spec__Group_0__0 : rule__Readonly_attr_spec__Group_0__0__Impl rule__Readonly_attr_spec__Group_0__1 ;
    public final void rule__Readonly_attr_spec__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5747:1: ( rule__Readonly_attr_spec__Group_0__0__Impl rule__Readonly_attr_spec__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5748:2: rule__Readonly_attr_spec__Group_0__0__Impl rule__Readonly_attr_spec__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__0__Impl_in_rule__Readonly_attr_spec__Group_0__012058);
            rule__Readonly_attr_spec__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__1_in_rule__Readonly_attr_spec__Group_0__012061);
            rule__Readonly_attr_spec__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__0"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5755:1: rule__Readonly_attr_spec__Group_0__0__Impl : ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5759:1: ( ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5760:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5760:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5761:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5762:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5762:2: rule__Readonly_attr_spec__IsReadonlyAssignment_0_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_0_0_in_rule__Readonly_attr_spec__Group_0__0__Impl12088);
            rule__Readonly_attr_spec__IsReadonlyAssignment_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__0__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5772:1: rule__Readonly_attr_spec__Group_0__1 : rule__Readonly_attr_spec__Group_0__1__Impl rule__Readonly_attr_spec__Group_0__2 ;
    public final void rule__Readonly_attr_spec__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5776:1: ( rule__Readonly_attr_spec__Group_0__1__Impl rule__Readonly_attr_spec__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5777:2: rule__Readonly_attr_spec__Group_0__1__Impl rule__Readonly_attr_spec__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__1__Impl_in_rule__Readonly_attr_spec__Group_0__112118);
            rule__Readonly_attr_spec__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__2_in_rule__Readonly_attr_spec__Group_0__112121);
            rule__Readonly_attr_spec__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__1"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5784:1: rule__Readonly_attr_spec__Group_0__1__Impl : ( 'attribute' ) ;
    public final void rule__Readonly_attr_spec__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5788:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5789:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5789:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5790:1: 'attribute'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_0_1()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Readonly_attr_spec__Group_0__1__Impl12149); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__1__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5803:1: rule__Readonly_attr_spec__Group_0__2 : rule__Readonly_attr_spec__Group_0__2__Impl rule__Readonly_attr_spec__Group_0__3 ;
    public final void rule__Readonly_attr_spec__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5807:1: ( rule__Readonly_attr_spec__Group_0__2__Impl rule__Readonly_attr_spec__Group_0__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5808:2: rule__Readonly_attr_spec__Group_0__2__Impl rule__Readonly_attr_spec__Group_0__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__2__Impl_in_rule__Readonly_attr_spec__Group_0__212180);
            rule__Readonly_attr_spec__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__3_in_rule__Readonly_attr_spec__Group_0__212183);
            rule__Readonly_attr_spec__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__2"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5815:1: rule__Readonly_attr_spec__Group_0__2__Impl : ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5819:1: ( ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5820:1: ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5820:1: ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5821:1: ( rule__Readonly_attr_spec__Alternatives_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAlternatives_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5822:1: ( rule__Readonly_attr_spec__Alternatives_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5822:2: rule__Readonly_attr_spec__Alternatives_0_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Alternatives_0_2_in_rule__Readonly_attr_spec__Group_0__2__Impl12210);
            rule__Readonly_attr_spec__Alternatives_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAlternatives_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__2__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5832:1: rule__Readonly_attr_spec__Group_0__3 : rule__Readonly_attr_spec__Group_0__3__Impl rule__Readonly_attr_spec__Group_0__4 ;
    public final void rule__Readonly_attr_spec__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5836:1: ( rule__Readonly_attr_spec__Group_0__3__Impl rule__Readonly_attr_spec__Group_0__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5837:2: rule__Readonly_attr_spec__Group_0__3__Impl rule__Readonly_attr_spec__Group_0__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__3__Impl_in_rule__Readonly_attr_spec__Group_0__312240);
            rule__Readonly_attr_spec__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__4_in_rule__Readonly_attr_spec__Group_0__312243);
            rule__Readonly_attr_spec__Group_0__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__3"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5844:1: rule__Readonly_attr_spec__Group_0__3__Impl : ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5848:1: ( ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5849:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5849:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5850:1: ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_0_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5851:1: ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5851:2: rule__Readonly_attr_spec__IdentifierAssignment_0_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_0_3_in_rule__Readonly_attr_spec__Group_0__3__Impl12270);
            rule__Readonly_attr_spec__IdentifierAssignment_0_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__3__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5861:1: rule__Readonly_attr_spec__Group_0__4 : rule__Readonly_attr_spec__Group_0__4__Impl rule__Readonly_attr_spec__Group_0__5 ;
    public final void rule__Readonly_attr_spec__Group_0__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5865:1: ( rule__Readonly_attr_spec__Group_0__4__Impl rule__Readonly_attr_spec__Group_0__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5866:2: rule__Readonly_attr_spec__Group_0__4__Impl rule__Readonly_attr_spec__Group_0__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__4__Impl_in_rule__Readonly_attr_spec__Group_0__412300);
            rule__Readonly_attr_spec__Group_0__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__5_in_rule__Readonly_attr_spec__Group_0__412303);
            rule__Readonly_attr_spec__Group_0__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__4"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5873:1: rule__Readonly_attr_spec__Group_0__4__Impl : ( 'raises' ) ;
    public final void rule__Readonly_attr_spec__Group_0__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5877:1: ( ( 'raises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5878:1: ( 'raises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5878:1: ( 'raises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5879:1: 'raises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getRaisesKeyword_0_4()); 
            }
            match(input,52,FollowSets000.FOLLOW_52_in_rule__Readonly_attr_spec__Group_0__4__Impl12331); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getRaisesKeyword_0_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__4__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5892:1: rule__Readonly_attr_spec__Group_0__5 : rule__Readonly_attr_spec__Group_0__5__Impl rule__Readonly_attr_spec__Group_0__6 ;
    public final void rule__Readonly_attr_spec__Group_0__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5896:1: ( rule__Readonly_attr_spec__Group_0__5__Impl rule__Readonly_attr_spec__Group_0__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5897:2: rule__Readonly_attr_spec__Group_0__5__Impl rule__Readonly_attr_spec__Group_0__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__5__Impl_in_rule__Readonly_attr_spec__Group_0__512362);
            rule__Readonly_attr_spec__Group_0__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__6_in_rule__Readonly_attr_spec__Group_0__512365);
            rule__Readonly_attr_spec__Group_0__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__5"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__5__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5904:1: rule__Readonly_attr_spec__Group_0__5__Impl : ( '(' ) ;
    public final void rule__Readonly_attr_spec__Group_0__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5908:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5909:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5909:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5910:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getLeftParenthesisKeyword_0_5()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Readonly_attr_spec__Group_0__5__Impl12393); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getLeftParenthesisKeyword_0_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__5__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__6"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5923:1: rule__Readonly_attr_spec__Group_0__6 : rule__Readonly_attr_spec__Group_0__6__Impl rule__Readonly_attr_spec__Group_0__7 ;
    public final void rule__Readonly_attr_spec__Group_0__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5927:1: ( rule__Readonly_attr_spec__Group_0__6__Impl rule__Readonly_attr_spec__Group_0__7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5928:2: rule__Readonly_attr_spec__Group_0__6__Impl rule__Readonly_attr_spec__Group_0__7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__6__Impl_in_rule__Readonly_attr_spec__Group_0__612424);
            rule__Readonly_attr_spec__Group_0__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__7_in_rule__Readonly_attr_spec__Group_0__612427);
            rule__Readonly_attr_spec__Group_0__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__6"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__6__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5935:1: rule__Readonly_attr_spec__Group_0__6__Impl : ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5939:1: ( ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5940:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5940:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5941:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_6()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5942:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5942:2: rule__Readonly_attr_spec__GetRaisesAssignment_0_6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_6_in_rule__Readonly_attr_spec__Group_0__6__Impl12454);
            rule__Readonly_attr_spec__GetRaisesAssignment_0_6();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__6__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__7"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5952:1: rule__Readonly_attr_spec__Group_0__7 : rule__Readonly_attr_spec__Group_0__7__Impl rule__Readonly_attr_spec__Group_0__8 ;
    public final void rule__Readonly_attr_spec__Group_0__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5956:1: ( rule__Readonly_attr_spec__Group_0__7__Impl rule__Readonly_attr_spec__Group_0__8 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5957:2: rule__Readonly_attr_spec__Group_0__7__Impl rule__Readonly_attr_spec__Group_0__8
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__7__Impl_in_rule__Readonly_attr_spec__Group_0__712484);
            rule__Readonly_attr_spec__Group_0__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__8_in_rule__Readonly_attr_spec__Group_0__712487);
            rule__Readonly_attr_spec__Group_0__8();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__7"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__7__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5964:1: rule__Readonly_attr_spec__Group_0__7__Impl : ( ( rule__Readonly_attr_spec__Group_0_7__0 )* ) ;
    public final void rule__Readonly_attr_spec__Group_0__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5968:1: ( ( ( rule__Readonly_attr_spec__Group_0_7__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5969:1: ( ( rule__Readonly_attr_spec__Group_0_7__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5969:1: ( ( rule__Readonly_attr_spec__Group_0_7__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5970:1: ( rule__Readonly_attr_spec__Group_0_7__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGroup_0_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5971:1: ( rule__Readonly_attr_spec__Group_0_7__0 )*
            loop64:
            do {
                int alt64=2;
                int LA64_0 = input.LA(1);

                if ( (LA64_0==49) ) {
                    alt64=1;
                }


                switch (alt64) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5971:2: rule__Readonly_attr_spec__Group_0_7__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__0_in_rule__Readonly_attr_spec__Group_0__7__Impl12514);
            	    rule__Readonly_attr_spec__Group_0_7__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop64;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGroup_0_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__7__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__8"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5981:1: rule__Readonly_attr_spec__Group_0__8 : rule__Readonly_attr_spec__Group_0__8__Impl ;
    public final void rule__Readonly_attr_spec__Group_0__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5985:1: ( rule__Readonly_attr_spec__Group_0__8__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5986:2: rule__Readonly_attr_spec__Group_0__8__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__8__Impl_in_rule__Readonly_attr_spec__Group_0__812545);
            rule__Readonly_attr_spec__Group_0__8__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__8"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0__8__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5992:1: rule__Readonly_attr_spec__Group_0__8__Impl : ( ')' ) ;
    public final void rule__Readonly_attr_spec__Group_0__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5996:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5997:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5997:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5998:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getRightParenthesisKeyword_0_8()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Readonly_attr_spec__Group_0__8__Impl12573); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getRightParenthesisKeyword_0_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0__8__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0_7__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6029:1: rule__Readonly_attr_spec__Group_0_7__0 : rule__Readonly_attr_spec__Group_0_7__0__Impl rule__Readonly_attr_spec__Group_0_7__1 ;
    public final void rule__Readonly_attr_spec__Group_0_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6033:1: ( rule__Readonly_attr_spec__Group_0_7__0__Impl rule__Readonly_attr_spec__Group_0_7__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6034:2: rule__Readonly_attr_spec__Group_0_7__0__Impl rule__Readonly_attr_spec__Group_0_7__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__0__Impl_in_rule__Readonly_attr_spec__Group_0_7__012622);
            rule__Readonly_attr_spec__Group_0_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__1_in_rule__Readonly_attr_spec__Group_0_7__012625);
            rule__Readonly_attr_spec__Group_0_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0_7__0"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0_7__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6041:1: rule__Readonly_attr_spec__Group_0_7__0__Impl : ( ',' ) ;
    public final void rule__Readonly_attr_spec__Group_0_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6045:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6046:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6046:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6047:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getCommaKeyword_0_7_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Readonly_attr_spec__Group_0_7__0__Impl12653); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getCommaKeyword_0_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0_7__0__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0_7__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6060:1: rule__Readonly_attr_spec__Group_0_7__1 : rule__Readonly_attr_spec__Group_0_7__1__Impl ;
    public final void rule__Readonly_attr_spec__Group_0_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6064:1: ( rule__Readonly_attr_spec__Group_0_7__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6065:2: rule__Readonly_attr_spec__Group_0_7__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__1__Impl_in_rule__Readonly_attr_spec__Group_0_7__112684);
            rule__Readonly_attr_spec__Group_0_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0_7__1"


    // $ANTLR start "rule__Readonly_attr_spec__Group_0_7__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6071:1: rule__Readonly_attr_spec__Group_0_7__1__Impl : ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6075:1: ( ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6076:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6076:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6077:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_7_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6078:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6078:2: rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1_in_rule__Readonly_attr_spec__Group_0_7__1__Impl12711);
            rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_0_7__1__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6092:1: rule__Readonly_attr_spec__Group_1__0 : rule__Readonly_attr_spec__Group_1__0__Impl rule__Readonly_attr_spec__Group_1__1 ;
    public final void rule__Readonly_attr_spec__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6096:1: ( rule__Readonly_attr_spec__Group_1__0__Impl rule__Readonly_attr_spec__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6097:2: rule__Readonly_attr_spec__Group_1__0__Impl rule__Readonly_attr_spec__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__0__Impl_in_rule__Readonly_attr_spec__Group_1__012745);
            rule__Readonly_attr_spec__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__1_in_rule__Readonly_attr_spec__Group_1__012748);
            rule__Readonly_attr_spec__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__0"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6104:1: rule__Readonly_attr_spec__Group_1__0__Impl : ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) ) ;
    public final void rule__Readonly_attr_spec__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6108:1: ( ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6109:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6109:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6110:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6111:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6111:2: rule__Readonly_attr_spec__IsReadonlyAssignment_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_1_0_in_rule__Readonly_attr_spec__Group_1__0__Impl12775);
            rule__Readonly_attr_spec__IsReadonlyAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__0__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6121:1: rule__Readonly_attr_spec__Group_1__1 : rule__Readonly_attr_spec__Group_1__1__Impl rule__Readonly_attr_spec__Group_1__2 ;
    public final void rule__Readonly_attr_spec__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6125:1: ( rule__Readonly_attr_spec__Group_1__1__Impl rule__Readonly_attr_spec__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6126:2: rule__Readonly_attr_spec__Group_1__1__Impl rule__Readonly_attr_spec__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__1__Impl_in_rule__Readonly_attr_spec__Group_1__112805);
            rule__Readonly_attr_spec__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__2_in_rule__Readonly_attr_spec__Group_1__112808);
            rule__Readonly_attr_spec__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__1"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6133:1: rule__Readonly_attr_spec__Group_1__1__Impl : ( 'attribute' ) ;
    public final void rule__Readonly_attr_spec__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6137:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6138:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6138:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6139:1: 'attribute'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_1_1()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Readonly_attr_spec__Group_1__1__Impl12836); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__1__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6152:1: rule__Readonly_attr_spec__Group_1__2 : rule__Readonly_attr_spec__Group_1__2__Impl rule__Readonly_attr_spec__Group_1__3 ;
    public final void rule__Readonly_attr_spec__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6156:1: ( rule__Readonly_attr_spec__Group_1__2__Impl rule__Readonly_attr_spec__Group_1__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6157:2: rule__Readonly_attr_spec__Group_1__2__Impl rule__Readonly_attr_spec__Group_1__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__2__Impl_in_rule__Readonly_attr_spec__Group_1__212867);
            rule__Readonly_attr_spec__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__3_in_rule__Readonly_attr_spec__Group_1__212870);
            rule__Readonly_attr_spec__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__2"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6164:1: rule__Readonly_attr_spec__Group_1__2__Impl : ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) ) ;
    public final void rule__Readonly_attr_spec__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6168:1: ( ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6169:1: ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6169:1: ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6170:1: ( rule__Readonly_attr_spec__Alternatives_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAlternatives_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6171:1: ( rule__Readonly_attr_spec__Alternatives_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6171:2: rule__Readonly_attr_spec__Alternatives_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Alternatives_1_2_in_rule__Readonly_attr_spec__Group_1__2__Impl12897);
            rule__Readonly_attr_spec__Alternatives_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAlternatives_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__2__Impl"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6181:1: rule__Readonly_attr_spec__Group_1__3 : rule__Readonly_attr_spec__Group_1__3__Impl ;
    public final void rule__Readonly_attr_spec__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6185:1: ( rule__Readonly_attr_spec__Group_1__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6186:2: rule__Readonly_attr_spec__Group_1__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__3__Impl_in_rule__Readonly_attr_spec__Group_1__312927);
            rule__Readonly_attr_spec__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__3"


    // $ANTLR start "rule__Readonly_attr_spec__Group_1__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6192:1: rule__Readonly_attr_spec__Group_1__3__Impl : ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) ) ;
    public final void rule__Readonly_attr_spec__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6196:1: ( ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6197:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6197:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6198:1: ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_1_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6199:1: ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6199:2: rule__Readonly_attr_spec__IdentifierAssignment_1_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_1_3_in_rule__Readonly_attr_spec__Group_1__3__Impl12954);
            rule__Readonly_attr_spec__IdentifierAssignment_1_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__Group_1__3__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6217:1: rule__Attr_spec__Group_0__0 : rule__Attr_spec__Group_0__0__Impl rule__Attr_spec__Group_0__1 ;
    public final void rule__Attr_spec__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6221:1: ( rule__Attr_spec__Group_0__0__Impl rule__Attr_spec__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6222:2: rule__Attr_spec__Group_0__0__Impl rule__Attr_spec__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__0__Impl_in_rule__Attr_spec__Group_0__012992);
            rule__Attr_spec__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__1_in_rule__Attr_spec__Group_0__012995);
            rule__Attr_spec__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__0"


    // $ANTLR start "rule__Attr_spec__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6229:1: rule__Attr_spec__Group_0__0__Impl : ( 'attribute' ) ;
    public final void rule__Attr_spec__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6233:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6234:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6234:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6235:1: 'attribute'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAttributeKeyword_0_0()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Attr_spec__Group_0__0__Impl13023); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAttributeKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6248:1: rule__Attr_spec__Group_0__1 : rule__Attr_spec__Group_0__1__Impl rule__Attr_spec__Group_0__2 ;
    public final void rule__Attr_spec__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6252:1: ( rule__Attr_spec__Group_0__1__Impl rule__Attr_spec__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6253:2: rule__Attr_spec__Group_0__1__Impl rule__Attr_spec__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__1__Impl_in_rule__Attr_spec__Group_0__113054);
            rule__Attr_spec__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__2_in_rule__Attr_spec__Group_0__113057);
            rule__Attr_spec__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__1"


    // $ANTLR start "rule__Attr_spec__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6260:1: rule__Attr_spec__Group_0__1__Impl : ( ( rule__Attr_spec__Alternatives_0_1 ) ) ;
    public final void rule__Attr_spec__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6264:1: ( ( ( rule__Attr_spec__Alternatives_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6265:1: ( ( rule__Attr_spec__Alternatives_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6265:1: ( ( rule__Attr_spec__Alternatives_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6266:1: ( rule__Attr_spec__Alternatives_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6267:1: ( rule__Attr_spec__Alternatives_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6267:2: rule__Attr_spec__Alternatives_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_0_1_in_rule__Attr_spec__Group_0__1__Impl13084);
            rule__Attr_spec__Alternatives_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6277:1: rule__Attr_spec__Group_0__2 : rule__Attr_spec__Group_0__2__Impl rule__Attr_spec__Group_0__3 ;
    public final void rule__Attr_spec__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6281:1: ( rule__Attr_spec__Group_0__2__Impl rule__Attr_spec__Group_0__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6282:2: rule__Attr_spec__Group_0__2__Impl rule__Attr_spec__Group_0__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__2__Impl_in_rule__Attr_spec__Group_0__213114);
            rule__Attr_spec__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__3_in_rule__Attr_spec__Group_0__213117);
            rule__Attr_spec__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__2"


    // $ANTLR start "rule__Attr_spec__Group_0__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6289:1: rule__Attr_spec__Group_0__2__Impl : ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) ) ;
    public final void rule__Attr_spec__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6293:1: ( ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6294:1: ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6294:1: ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6295:1: ( rule__Attr_spec__IdentifierAssignment_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierAssignment_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6296:1: ( rule__Attr_spec__IdentifierAssignment_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6296:2: rule__Attr_spec__IdentifierAssignment_0_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__IdentifierAssignment_0_2_in_rule__Attr_spec__Group_0__2__Impl13144);
            rule__Attr_spec__IdentifierAssignment_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierAssignment_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__2__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6306:1: rule__Attr_spec__Group_0__3 : rule__Attr_spec__Group_0__3__Impl ;
    public final void rule__Attr_spec__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6310:1: ( rule__Attr_spec__Group_0__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6311:2: rule__Attr_spec__Group_0__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__3__Impl_in_rule__Attr_spec__Group_0__313174);
            rule__Attr_spec__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__3"


    // $ANTLR start "rule__Attr_spec__Group_0__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6317:1: rule__Attr_spec__Group_0__3__Impl : ( ( rule__Attr_spec__Alternatives_0_3 ) ) ;
    public final void rule__Attr_spec__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6321:1: ( ( ( rule__Attr_spec__Alternatives_0_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6322:1: ( ( rule__Attr_spec__Alternatives_0_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6322:1: ( ( rule__Attr_spec__Alternatives_0_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6323:1: ( rule__Attr_spec__Alternatives_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives_0_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6324:1: ( rule__Attr_spec__Alternatives_0_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6324:2: rule__Attr_spec__Alternatives_0_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_0_3_in_rule__Attr_spec__Group_0__3__Impl13201);
            rule__Attr_spec__Alternatives_0_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0__3__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6342:1: rule__Attr_spec__Group_0_3_0__0 : rule__Attr_spec__Group_0_3_0__0__Impl rule__Attr_spec__Group_0_3_0__1 ;
    public final void rule__Attr_spec__Group_0_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6346:1: ( rule__Attr_spec__Group_0_3_0__0__Impl rule__Attr_spec__Group_0_3_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6347:2: rule__Attr_spec__Group_0_3_0__0__Impl rule__Attr_spec__Group_0_3_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__0__Impl_in_rule__Attr_spec__Group_0_3_0__013239);
            rule__Attr_spec__Group_0_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__1_in_rule__Attr_spec__Group_0_3_0__013242);
            rule__Attr_spec__Group_0_3_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__0"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6354:1: rule__Attr_spec__Group_0_3_0__0__Impl : ( 'getraises' ) ;
    public final void rule__Attr_spec__Group_0_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6358:1: ( ( 'getraises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6359:1: ( 'getraises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6359:1: ( 'getraises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6360:1: 'getraises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetraisesKeyword_0_3_0_0()); 
            }
            match(input,55,FollowSets000.FOLLOW_55_in_rule__Attr_spec__Group_0_3_0__0__Impl13270); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetraisesKeyword_0_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6373:1: rule__Attr_spec__Group_0_3_0__1 : rule__Attr_spec__Group_0_3_0__1__Impl rule__Attr_spec__Group_0_3_0__2 ;
    public final void rule__Attr_spec__Group_0_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6377:1: ( rule__Attr_spec__Group_0_3_0__1__Impl rule__Attr_spec__Group_0_3_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6378:2: rule__Attr_spec__Group_0_3_0__1__Impl rule__Attr_spec__Group_0_3_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__1__Impl_in_rule__Attr_spec__Group_0_3_0__113301);
            rule__Attr_spec__Group_0_3_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__2_in_rule__Attr_spec__Group_0_3_0__113304);
            rule__Attr_spec__Group_0_3_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__1"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6385:1: rule__Attr_spec__Group_0_3_0__1__Impl : ( '(' ) ;
    public final void rule__Attr_spec__Group_0_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6389:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6390:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6390:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6391:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Attr_spec__Group_0_3_0__1__Impl13332); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6404:1: rule__Attr_spec__Group_0_3_0__2 : rule__Attr_spec__Group_0_3_0__2__Impl rule__Attr_spec__Group_0_3_0__3 ;
    public final void rule__Attr_spec__Group_0_3_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6408:1: ( rule__Attr_spec__Group_0_3_0__2__Impl rule__Attr_spec__Group_0_3_0__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6409:2: rule__Attr_spec__Group_0_3_0__2__Impl rule__Attr_spec__Group_0_3_0__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__2__Impl_in_rule__Attr_spec__Group_0_3_0__213363);
            rule__Attr_spec__Group_0_3_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__3_in_rule__Attr_spec__Group_0_3_0__213366);
            rule__Attr_spec__Group_0_3_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__2"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6416:1: rule__Attr_spec__Group_0_3_0__2__Impl : ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6420:1: ( ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6421:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6421:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6422:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6423:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6423:2: rule__Attr_spec__GetRaisesAssignment_0_3_0_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_2_in_rule__Attr_spec__Group_0_3_0__2__Impl13393);
            rule__Attr_spec__GetRaisesAssignment_0_3_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__2__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6433:1: rule__Attr_spec__Group_0_3_0__3 : rule__Attr_spec__Group_0_3_0__3__Impl rule__Attr_spec__Group_0_3_0__4 ;
    public final void rule__Attr_spec__Group_0_3_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6437:1: ( rule__Attr_spec__Group_0_3_0__3__Impl rule__Attr_spec__Group_0_3_0__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6438:2: rule__Attr_spec__Group_0_3_0__3__Impl rule__Attr_spec__Group_0_3_0__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__3__Impl_in_rule__Attr_spec__Group_0_3_0__313423);
            rule__Attr_spec__Group_0_3_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__4_in_rule__Attr_spec__Group_0_3_0__313426);
            rule__Attr_spec__Group_0_3_0__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__3"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6445:1: rule__Attr_spec__Group_0_3_0__3__Impl : ( ( rule__Attr_spec__Group_0_3_0_3__0 )* ) ;
    public final void rule__Attr_spec__Group_0_3_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6449:1: ( ( ( rule__Attr_spec__Group_0_3_0_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6450:1: ( ( rule__Attr_spec__Group_0_3_0_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6450:1: ( ( rule__Attr_spec__Group_0_3_0_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6451:1: ( rule__Attr_spec__Group_0_3_0_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_0_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6452:1: ( rule__Attr_spec__Group_0_3_0_3__0 )*
            loop65:
            do {
                int alt65=2;
                int LA65_0 = input.LA(1);

                if ( (LA65_0==49) ) {
                    alt65=1;
                }


                switch (alt65) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6452:2: rule__Attr_spec__Group_0_3_0_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__0_in_rule__Attr_spec__Group_0_3_0__3__Impl13453);
            	    rule__Attr_spec__Group_0_3_0_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop65;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__3__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6462:1: rule__Attr_spec__Group_0_3_0__4 : rule__Attr_spec__Group_0_3_0__4__Impl rule__Attr_spec__Group_0_3_0__5 ;
    public final void rule__Attr_spec__Group_0_3_0__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6466:1: ( rule__Attr_spec__Group_0_3_0__4__Impl rule__Attr_spec__Group_0_3_0__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6467:2: rule__Attr_spec__Group_0_3_0__4__Impl rule__Attr_spec__Group_0_3_0__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__4__Impl_in_rule__Attr_spec__Group_0_3_0__413484);
            rule__Attr_spec__Group_0_3_0__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__5_in_rule__Attr_spec__Group_0_3_0__413487);
            rule__Attr_spec__Group_0_3_0__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__4"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6474:1: rule__Attr_spec__Group_0_3_0__4__Impl : ( ')' ) ;
    public final void rule__Attr_spec__Group_0_3_0__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6478:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6479:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6479:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6480:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Attr_spec__Group_0_3_0__4__Impl13515); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__4__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6493:1: rule__Attr_spec__Group_0_3_0__5 : rule__Attr_spec__Group_0_3_0__5__Impl ;
    public final void rule__Attr_spec__Group_0_3_0__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6497:1: ( rule__Attr_spec__Group_0_3_0__5__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6498:2: rule__Attr_spec__Group_0_3_0__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__5__Impl_in_rule__Attr_spec__Group_0_3_0__513546);
            rule__Attr_spec__Group_0_3_0__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__5"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0__5__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6504:1: rule__Attr_spec__Group_0_3_0__5__Impl : ( ( rule__Attr_spec__Group_0_3_0_5__0 )? ) ;
    public final void rule__Attr_spec__Group_0_3_0__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6508:1: ( ( ( rule__Attr_spec__Group_0_3_0_5__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6509:1: ( ( rule__Attr_spec__Group_0_3_0_5__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6509:1: ( ( rule__Attr_spec__Group_0_3_0_5__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6510:1: ( rule__Attr_spec__Group_0_3_0_5__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6511:1: ( rule__Attr_spec__Group_0_3_0_5__0 )?
            int alt66=2;
            int LA66_0 = input.LA(1);

            if ( (LA66_0==56) ) {
                alt66=1;
            }
            switch (alt66) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6511:2: rule__Attr_spec__Group_0_3_0_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__0_in_rule__Attr_spec__Group_0_3_0__5__Impl13573);
                    rule__Attr_spec__Group_0_3_0_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0__5__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6533:1: rule__Attr_spec__Group_0_3_0_3__0 : rule__Attr_spec__Group_0_3_0_3__0__Impl rule__Attr_spec__Group_0_3_0_3__1 ;
    public final void rule__Attr_spec__Group_0_3_0_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6537:1: ( rule__Attr_spec__Group_0_3_0_3__0__Impl rule__Attr_spec__Group_0_3_0_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6538:2: rule__Attr_spec__Group_0_3_0_3__0__Impl rule__Attr_spec__Group_0_3_0_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_3__013616);
            rule__Attr_spec__Group_0_3_0_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__1_in_rule__Attr_spec__Group_0_3_0_3__013619);
            rule__Attr_spec__Group_0_3_0_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_3__0"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6545:1: rule__Attr_spec__Group_0_3_0_3__0__Impl : ( ',' ) ;
    public final void rule__Attr_spec__Group_0_3_0_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6549:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6550:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6550:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6551:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_3__0__Impl13647); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_3__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6564:1: rule__Attr_spec__Group_0_3_0_3__1 : rule__Attr_spec__Group_0_3_0_3__1__Impl ;
    public final void rule__Attr_spec__Group_0_3_0_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6568:1: ( rule__Attr_spec__Group_0_3_0_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6569:2: rule__Attr_spec__Group_0_3_0_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_3__113678);
            rule__Attr_spec__Group_0_3_0_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_3__1"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6575:1: rule__Attr_spec__Group_0_3_0_3__1__Impl : ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6579:1: ( ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6580:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6580:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6581:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6582:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6582:2: rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1_in_rule__Attr_spec__Group_0_3_0_3__1__Impl13705);
            rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_3__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6596:1: rule__Attr_spec__Group_0_3_0_5__0 : rule__Attr_spec__Group_0_3_0_5__0__Impl rule__Attr_spec__Group_0_3_0_5__1 ;
    public final void rule__Attr_spec__Group_0_3_0_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6600:1: ( rule__Attr_spec__Group_0_3_0_5__0__Impl rule__Attr_spec__Group_0_3_0_5__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6601:2: rule__Attr_spec__Group_0_3_0_5__0__Impl rule__Attr_spec__Group_0_3_0_5__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__0__Impl_in_rule__Attr_spec__Group_0_3_0_5__013739);
            rule__Attr_spec__Group_0_3_0_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__1_in_rule__Attr_spec__Group_0_3_0_5__013742);
            rule__Attr_spec__Group_0_3_0_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__0"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6608:1: rule__Attr_spec__Group_0_3_0_5__0__Impl : ( 'setraises' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6612:1: ( ( 'setraises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6613:1: ( 'setraises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6613:1: ( 'setraises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6614:1: 'setraises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_0_5_0()); 
            }
            match(input,56,FollowSets000.FOLLOW_56_in_rule__Attr_spec__Group_0_3_0_5__0__Impl13770); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_0_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6627:1: rule__Attr_spec__Group_0_3_0_5__1 : rule__Attr_spec__Group_0_3_0_5__1__Impl rule__Attr_spec__Group_0_3_0_5__2 ;
    public final void rule__Attr_spec__Group_0_3_0_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6631:1: ( rule__Attr_spec__Group_0_3_0_5__1__Impl rule__Attr_spec__Group_0_3_0_5__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6632:2: rule__Attr_spec__Group_0_3_0_5__1__Impl rule__Attr_spec__Group_0_3_0_5__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__1__Impl_in_rule__Attr_spec__Group_0_3_0_5__113801);
            rule__Attr_spec__Group_0_3_0_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__2_in_rule__Attr_spec__Group_0_3_0_5__113804);
            rule__Attr_spec__Group_0_3_0_5__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__1"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6639:1: rule__Attr_spec__Group_0_3_0_5__1__Impl : ( '(' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6643:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6644:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6644:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6645:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_5_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Attr_spec__Group_0_3_0_5__1__Impl13832); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6658:1: rule__Attr_spec__Group_0_3_0_5__2 : rule__Attr_spec__Group_0_3_0_5__2__Impl rule__Attr_spec__Group_0_3_0_5__3 ;
    public final void rule__Attr_spec__Group_0_3_0_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6662:1: ( rule__Attr_spec__Group_0_3_0_5__2__Impl rule__Attr_spec__Group_0_3_0_5__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6663:2: rule__Attr_spec__Group_0_3_0_5__2__Impl rule__Attr_spec__Group_0_3_0_5__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__2__Impl_in_rule__Attr_spec__Group_0_3_0_5__213863);
            rule__Attr_spec__Group_0_3_0_5__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__3_in_rule__Attr_spec__Group_0_3_0_5__213866);
            rule__Attr_spec__Group_0_3_0_5__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__2"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6670:1: rule__Attr_spec__Group_0_3_0_5__2__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6674:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6675:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6675:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6676:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6677:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6677:2: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2_in_rule__Attr_spec__Group_0_3_0_5__2__Impl13893);
            rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__2__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6687:1: rule__Attr_spec__Group_0_3_0_5__3 : rule__Attr_spec__Group_0_3_0_5__3__Impl rule__Attr_spec__Group_0_3_0_5__4 ;
    public final void rule__Attr_spec__Group_0_3_0_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6691:1: ( rule__Attr_spec__Group_0_3_0_5__3__Impl rule__Attr_spec__Group_0_3_0_5__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6692:2: rule__Attr_spec__Group_0_3_0_5__3__Impl rule__Attr_spec__Group_0_3_0_5__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__3__Impl_in_rule__Attr_spec__Group_0_3_0_5__313923);
            rule__Attr_spec__Group_0_3_0_5__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__4_in_rule__Attr_spec__Group_0_3_0_5__313926);
            rule__Attr_spec__Group_0_3_0_5__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__3"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6699:1: rule__Attr_spec__Group_0_3_0_5__3__Impl : ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6703:1: ( ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6704:1: ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6704:1: ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6705:1: ( rule__Attr_spec__Group_0_3_0_5_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6706:1: ( rule__Attr_spec__Group_0_3_0_5_3__0 )*
            loop67:
            do {
                int alt67=2;
                int LA67_0 = input.LA(1);

                if ( (LA67_0==49) ) {
                    alt67=1;
                }


                switch (alt67) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6706:2: rule__Attr_spec__Group_0_3_0_5_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0_in_rule__Attr_spec__Group_0_3_0_5__3__Impl13953);
            	    rule__Attr_spec__Group_0_3_0_5_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop67;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__3__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6716:1: rule__Attr_spec__Group_0_3_0_5__4 : rule__Attr_spec__Group_0_3_0_5__4__Impl ;
    public final void rule__Attr_spec__Group_0_3_0_5__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6720:1: ( rule__Attr_spec__Group_0_3_0_5__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6721:2: rule__Attr_spec__Group_0_3_0_5__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__4__Impl_in_rule__Attr_spec__Group_0_3_0_5__413984);
            rule__Attr_spec__Group_0_3_0_5__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__4"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6727:1: rule__Attr_spec__Group_0_3_0_5__4__Impl : ( ')' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6731:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6732:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6732:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6733:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_5_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Attr_spec__Group_0_3_0_5__4__Impl14012); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_5_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5__4__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6756:1: rule__Attr_spec__Group_0_3_0_5_3__0 : rule__Attr_spec__Group_0_3_0_5_3__0__Impl rule__Attr_spec__Group_0_3_0_5_3__1 ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6760:1: ( rule__Attr_spec__Group_0_3_0_5_3__0__Impl rule__Attr_spec__Group_0_3_0_5_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6761:2: rule__Attr_spec__Group_0_3_0_5_3__0__Impl rule__Attr_spec__Group_0_3_0_5_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__014053);
            rule__Attr_spec__Group_0_3_0_5_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1_in_rule__Attr_spec__Group_0_3_0_5_3__014056);
            rule__Attr_spec__Group_0_3_0_5_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5_3__0"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6768:1: rule__Attr_spec__Group_0_3_0_5_3__0__Impl : ( ',' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6772:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6773:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6773:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6774:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_5_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_5_3__0__Impl14084); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_5_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5_3__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6787:1: rule__Attr_spec__Group_0_3_0_5_3__1 : rule__Attr_spec__Group_0_3_0_5_3__1__Impl ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6791:1: ( rule__Attr_spec__Group_0_3_0_5_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6792:2: rule__Attr_spec__Group_0_3_0_5_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__114115);
            rule__Attr_spec__Group_0_3_0_5_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5_3__1"


    // $ANTLR start "rule__Attr_spec__Group_0_3_0_5_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6798:1: rule__Attr_spec__Group_0_3_0_5_3__1__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6802:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6803:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6803:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6804:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6805:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6805:2: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1_in_rule__Attr_spec__Group_0_3_0_5_3__1__Impl14142);
            rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_0_5_3__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6819:1: rule__Attr_spec__Group_0_3_1__0 : rule__Attr_spec__Group_0_3_1__0__Impl rule__Attr_spec__Group_0_3_1__1 ;
    public final void rule__Attr_spec__Group_0_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6823:1: ( rule__Attr_spec__Group_0_3_1__0__Impl rule__Attr_spec__Group_0_3_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6824:2: rule__Attr_spec__Group_0_3_1__0__Impl rule__Attr_spec__Group_0_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__0__Impl_in_rule__Attr_spec__Group_0_3_1__014176);
            rule__Attr_spec__Group_0_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__1_in_rule__Attr_spec__Group_0_3_1__014179);
            rule__Attr_spec__Group_0_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__0"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6831:1: rule__Attr_spec__Group_0_3_1__0__Impl : ( 'setraises' ) ;
    public final void rule__Attr_spec__Group_0_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6835:1: ( ( 'setraises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6836:1: ( 'setraises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6836:1: ( 'setraises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6837:1: 'setraises'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_1_0()); 
            }
            match(input,56,FollowSets000.FOLLOW_56_in_rule__Attr_spec__Group_0_3_1__0__Impl14207); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6850:1: rule__Attr_spec__Group_0_3_1__1 : rule__Attr_spec__Group_0_3_1__1__Impl rule__Attr_spec__Group_0_3_1__2 ;
    public final void rule__Attr_spec__Group_0_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6854:1: ( rule__Attr_spec__Group_0_3_1__1__Impl rule__Attr_spec__Group_0_3_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6855:2: rule__Attr_spec__Group_0_3_1__1__Impl rule__Attr_spec__Group_0_3_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__1__Impl_in_rule__Attr_spec__Group_0_3_1__114238);
            rule__Attr_spec__Group_0_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__2_in_rule__Attr_spec__Group_0_3_1__114241);
            rule__Attr_spec__Group_0_3_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__1"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6862:1: rule__Attr_spec__Group_0_3_1__1__Impl : ( '(' ) ;
    public final void rule__Attr_spec__Group_0_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6866:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6867:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6867:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6868:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_1_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Attr_spec__Group_0_3_1__1__Impl14269); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6881:1: rule__Attr_spec__Group_0_3_1__2 : rule__Attr_spec__Group_0_3_1__2__Impl rule__Attr_spec__Group_0_3_1__3 ;
    public final void rule__Attr_spec__Group_0_3_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6885:1: ( rule__Attr_spec__Group_0_3_1__2__Impl rule__Attr_spec__Group_0_3_1__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6886:2: rule__Attr_spec__Group_0_3_1__2__Impl rule__Attr_spec__Group_0_3_1__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__2__Impl_in_rule__Attr_spec__Group_0_3_1__214300);
            rule__Attr_spec__Group_0_3_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__3_in_rule__Attr_spec__Group_0_3_1__214303);
            rule__Attr_spec__Group_0_3_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__2"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6893:1: rule__Attr_spec__Group_0_3_1__2__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) ) ;
    public final void rule__Attr_spec__Group_0_3_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6897:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6898:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6898:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6899:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6900:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6900:2: rule__Attr_spec__SetRaisesAssignment_0_3_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_2_in_rule__Attr_spec__Group_0_3_1__2__Impl14330);
            rule__Attr_spec__SetRaisesAssignment_0_3_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__2__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6910:1: rule__Attr_spec__Group_0_3_1__3 : rule__Attr_spec__Group_0_3_1__3__Impl rule__Attr_spec__Group_0_3_1__4 ;
    public final void rule__Attr_spec__Group_0_3_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6914:1: ( rule__Attr_spec__Group_0_3_1__3__Impl rule__Attr_spec__Group_0_3_1__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6915:2: rule__Attr_spec__Group_0_3_1__3__Impl rule__Attr_spec__Group_0_3_1__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__3__Impl_in_rule__Attr_spec__Group_0_3_1__314360);
            rule__Attr_spec__Group_0_3_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__4_in_rule__Attr_spec__Group_0_3_1__314363);
            rule__Attr_spec__Group_0_3_1__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__3"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6922:1: rule__Attr_spec__Group_0_3_1__3__Impl : ( ( rule__Attr_spec__Group_0_3_1_3__0 )* ) ;
    public final void rule__Attr_spec__Group_0_3_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6926:1: ( ( ( rule__Attr_spec__Group_0_3_1_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6927:1: ( ( rule__Attr_spec__Group_0_3_1_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6927:1: ( ( rule__Attr_spec__Group_0_3_1_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6928:1: ( rule__Attr_spec__Group_0_3_1_3__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_1_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6929:1: ( rule__Attr_spec__Group_0_3_1_3__0 )*
            loop68:
            do {
                int alt68=2;
                int LA68_0 = input.LA(1);

                if ( (LA68_0==49) ) {
                    alt68=1;
                }


                switch (alt68) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6929:2: rule__Attr_spec__Group_0_3_1_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__0_in_rule__Attr_spec__Group_0_3_1__3__Impl14390);
            	    rule__Attr_spec__Group_0_3_1_3__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop68;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__3__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6939:1: rule__Attr_spec__Group_0_3_1__4 : rule__Attr_spec__Group_0_3_1__4__Impl ;
    public final void rule__Attr_spec__Group_0_3_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6943:1: ( rule__Attr_spec__Group_0_3_1__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6944:2: rule__Attr_spec__Group_0_3_1__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__4__Impl_in_rule__Attr_spec__Group_0_3_1__414421);
            rule__Attr_spec__Group_0_3_1__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__4"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6950:1: rule__Attr_spec__Group_0_3_1__4__Impl : ( ')' ) ;
    public final void rule__Attr_spec__Group_0_3_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6954:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6955:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6955:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6956:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_1_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Attr_spec__Group_0_3_1__4__Impl14449); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_1_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1__4__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6979:1: rule__Attr_spec__Group_0_3_1_3__0 : rule__Attr_spec__Group_0_3_1_3__0__Impl rule__Attr_spec__Group_0_3_1_3__1 ;
    public final void rule__Attr_spec__Group_0_3_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6983:1: ( rule__Attr_spec__Group_0_3_1_3__0__Impl rule__Attr_spec__Group_0_3_1_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6984:2: rule__Attr_spec__Group_0_3_1_3__0__Impl rule__Attr_spec__Group_0_3_1_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__0__Impl_in_rule__Attr_spec__Group_0_3_1_3__014490);
            rule__Attr_spec__Group_0_3_1_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__1_in_rule__Attr_spec__Group_0_3_1_3__014493);
            rule__Attr_spec__Group_0_3_1_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1_3__0"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6991:1: rule__Attr_spec__Group_0_3_1_3__0__Impl : ( ',' ) ;
    public final void rule__Attr_spec__Group_0_3_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6995:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6996:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6996:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6997:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_1_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Attr_spec__Group_0_3_1_3__0__Impl14521); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1_3__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7010:1: rule__Attr_spec__Group_0_3_1_3__1 : rule__Attr_spec__Group_0_3_1_3__1__Impl ;
    public final void rule__Attr_spec__Group_0_3_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7014:1: ( rule__Attr_spec__Group_0_3_1_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7015:2: rule__Attr_spec__Group_0_3_1_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__1__Impl_in_rule__Attr_spec__Group_0_3_1_3__114552);
            rule__Attr_spec__Group_0_3_1_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1_3__1"


    // $ANTLR start "rule__Attr_spec__Group_0_3_1_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7021:1: rule__Attr_spec__Group_0_3_1_3__1__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) ) ;
    public final void rule__Attr_spec__Group_0_3_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7025:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7026:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7026:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7027:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7028:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7028:2: rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1_in_rule__Attr_spec__Group_0_3_1_3__1__Impl14579);
            rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_0_3_1_3__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7042:1: rule__Attr_spec__Group_1__0 : rule__Attr_spec__Group_1__0__Impl rule__Attr_spec__Group_1__1 ;
    public final void rule__Attr_spec__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7046:1: ( rule__Attr_spec__Group_1__0__Impl rule__Attr_spec__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7047:2: rule__Attr_spec__Group_1__0__Impl rule__Attr_spec__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__0__Impl_in_rule__Attr_spec__Group_1__014613);
            rule__Attr_spec__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__1_in_rule__Attr_spec__Group_1__014616);
            rule__Attr_spec__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_1__0"


    // $ANTLR start "rule__Attr_spec__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7054:1: rule__Attr_spec__Group_1__0__Impl : ( 'attribute' ) ;
    public final void rule__Attr_spec__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7058:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7059:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7059:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7060:1: 'attribute'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAttributeKeyword_1_0()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Attr_spec__Group_1__0__Impl14644); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAttributeKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_1__0__Impl"


    // $ANTLR start "rule__Attr_spec__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7073:1: rule__Attr_spec__Group_1__1 : rule__Attr_spec__Group_1__1__Impl rule__Attr_spec__Group_1__2 ;
    public final void rule__Attr_spec__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7077:1: ( rule__Attr_spec__Group_1__1__Impl rule__Attr_spec__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7078:2: rule__Attr_spec__Group_1__1__Impl rule__Attr_spec__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__1__Impl_in_rule__Attr_spec__Group_1__114675);
            rule__Attr_spec__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__2_in_rule__Attr_spec__Group_1__114678);
            rule__Attr_spec__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_1__1"


    // $ANTLR start "rule__Attr_spec__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7085:1: rule__Attr_spec__Group_1__1__Impl : ( ( rule__Attr_spec__Alternatives_1_1 ) ) ;
    public final void rule__Attr_spec__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7089:1: ( ( ( rule__Attr_spec__Alternatives_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7090:1: ( ( rule__Attr_spec__Alternatives_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7090:1: ( ( rule__Attr_spec__Alternatives_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7091:1: ( rule__Attr_spec__Alternatives_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7092:1: ( rule__Attr_spec__Alternatives_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7092:2: rule__Attr_spec__Alternatives_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_1_1_in_rule__Attr_spec__Group_1__1__Impl14705);
            rule__Attr_spec__Alternatives_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_1__1__Impl"


    // $ANTLR start "rule__Attr_spec__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7102:1: rule__Attr_spec__Group_1__2 : rule__Attr_spec__Group_1__2__Impl ;
    public final void rule__Attr_spec__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7106:1: ( rule__Attr_spec__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7107:2: rule__Attr_spec__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__2__Impl_in_rule__Attr_spec__Group_1__214735);
            rule__Attr_spec__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_1__2"


    // $ANTLR start "rule__Attr_spec__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7113:1: rule__Attr_spec__Group_1__2__Impl : ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) ) ;
    public final void rule__Attr_spec__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7117:1: ( ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7118:1: ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7118:1: ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7119:1: ( rule__Attr_spec__IdentifierAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7120:1: ( rule__Attr_spec__IdentifierAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7120:2: rule__Attr_spec__IdentifierAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__IdentifierAssignment_1_2_in_rule__Attr_spec__Group_1__2__Impl14762);
            rule__Attr_spec__IdentifierAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__Group_1__2__Impl"


    // $ANTLR start "rule__Except_decl__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7136:1: rule__Except_decl__Group__0 : rule__Except_decl__Group__0__Impl rule__Except_decl__Group__1 ;
    public final void rule__Except_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7140:1: ( rule__Except_decl__Group__0__Impl rule__Except_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7141:2: rule__Except_decl__Group__0__Impl rule__Except_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__0__Impl_in_rule__Except_decl__Group__014798);
            rule__Except_decl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__1_in_rule__Except_decl__Group__014801);
            rule__Except_decl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__0"


    // $ANTLR start "rule__Except_decl__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7148:1: rule__Except_decl__Group__0__Impl : ( 'exception' ) ;
    public final void rule__Except_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7152:1: ( ( 'exception' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7153:1: ( 'exception' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7153:1: ( 'exception' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7154:1: 'exception'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getExceptionKeyword_0()); 
            }
            match(input,57,FollowSets000.FOLLOW_57_in_rule__Except_decl__Group__0__Impl14829); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getExceptionKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__0__Impl"


    // $ANTLR start "rule__Except_decl__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7167:1: rule__Except_decl__Group__1 : rule__Except_decl__Group__1__Impl rule__Except_decl__Group__2 ;
    public final void rule__Except_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7171:1: ( rule__Except_decl__Group__1__Impl rule__Except_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7172:2: rule__Except_decl__Group__1__Impl rule__Except_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__1__Impl_in_rule__Except_decl__Group__114860);
            rule__Except_decl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__2_in_rule__Except_decl__Group__114863);
            rule__Except_decl__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__1"


    // $ANTLR start "rule__Except_decl__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7179:1: rule__Except_decl__Group__1__Impl : ( ( rule__Except_decl__IdentifierAssignment_1 ) ) ;
    public final void rule__Except_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7183:1: ( ( ( rule__Except_decl__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7184:1: ( ( rule__Except_decl__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7184:1: ( ( rule__Except_decl__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7185:1: ( rule__Except_decl__IdentifierAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7186:1: ( rule__Except_decl__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7186:2: rule__Except_decl__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__IdentifierAssignment_1_in_rule__Except_decl__Group__1__Impl14890);
            rule__Except_decl__IdentifierAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__1__Impl"


    // $ANTLR start "rule__Except_decl__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7196:1: rule__Except_decl__Group__2 : rule__Except_decl__Group__2__Impl rule__Except_decl__Group__3 ;
    public final void rule__Except_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7200:1: ( rule__Except_decl__Group__2__Impl rule__Except_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7201:2: rule__Except_decl__Group__2__Impl rule__Except_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__2__Impl_in_rule__Except_decl__Group__214920);
            rule__Except_decl__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__3_in_rule__Except_decl__Group__214923);
            rule__Except_decl__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__2"


    // $ANTLR start "rule__Except_decl__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7208:1: rule__Except_decl__Group__2__Impl : ( '{' ) ;
    public final void rule__Except_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7212:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7213:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7213:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7214:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Except_decl__Group__2__Impl14951); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__2__Impl"


    // $ANTLR start "rule__Except_decl__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7227:1: rule__Except_decl__Group__3 : rule__Except_decl__Group__3__Impl rule__Except_decl__Group__4 ;
    public final void rule__Except_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7231:1: ( rule__Except_decl__Group__3__Impl rule__Except_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7232:2: rule__Except_decl__Group__3__Impl rule__Except_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__3__Impl_in_rule__Except_decl__Group__314982);
            rule__Except_decl__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__4_in_rule__Except_decl__Group__314985);
            rule__Except_decl__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__3"


    // $ANTLR start "rule__Except_decl__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7239:1: rule__Except_decl__Group__3__Impl : ( ( rule__Except_decl__MembersAssignment_3 )* ) ;
    public final void rule__Except_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7243:1: ( ( ( rule__Except_decl__MembersAssignment_3 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7244:1: ( ( rule__Except_decl__MembersAssignment_3 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7244:1: ( ( rule__Except_decl__MembersAssignment_3 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7245:1: ( rule__Except_decl__MembersAssignment_3 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7246:1: ( rule__Except_decl__MembersAssignment_3 )*
            loop69:
            do {
                int alt69=2;
                int LA69_0 = input.LA(1);

                if ( (LA69_0==RULE_ID||(LA69_0>=16 && LA69_0<=27)||LA69_0==62||LA69_0==69||(LA69_0>=72 && LA69_0<=73)) ) {
                    alt69=1;
                }


                switch (alt69) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7246:2: rule__Except_decl__MembersAssignment_3
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Except_decl__MembersAssignment_3_in_rule__Except_decl__Group__3__Impl15012);
            	    rule__Except_decl__MembersAssignment_3();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop69;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getMembersAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__3__Impl"


    // $ANTLR start "rule__Except_decl__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7256:1: rule__Except_decl__Group__4 : rule__Except_decl__Group__4__Impl ;
    public final void rule__Except_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7260:1: ( rule__Except_decl__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7261:2: rule__Except_decl__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__4__Impl_in_rule__Except_decl__Group__415043);
            rule__Except_decl__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__4"


    // $ANTLR start "rule__Except_decl__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7267:1: rule__Except_decl__Group__4__Impl : ( '}' ) ;
    public final void rule__Except_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7271:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7272:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7272:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7273:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Except_decl__Group__4__Impl15071); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__Group__4__Impl"


    // $ANTLR start "rule__Type_decl__Group_4__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7296:1: rule__Type_decl__Group_4__0 : rule__Type_decl__Group_4__0__Impl rule__Type_decl__Group_4__1 ;
    public final void rule__Type_decl__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7300:1: ( rule__Type_decl__Group_4__0__Impl rule__Type_decl__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7301:2: rule__Type_decl__Group_4__0__Impl rule__Type_decl__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__0__Impl_in_rule__Type_decl__Group_4__015112);
            rule__Type_decl__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__1_in_rule__Type_decl__Group_4__015115);
            rule__Type_decl__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type_decl__Group_4__0"


    // $ANTLR start "rule__Type_decl__Group_4__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7308:1: rule__Type_decl__Group_4__0__Impl : ( 'native' ) ;
    public final void rule__Type_decl__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7312:1: ( ( 'native' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7313:1: ( 'native' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7313:1: ( 'native' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7314:1: 'native'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getType_declAccess().getNativeKeyword_4_0()); 
            }
            match(input,58,FollowSets000.FOLLOW_58_in_rule__Type_decl__Group_4__0__Impl15143); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getType_declAccess().getNativeKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type_decl__Group_4__0__Impl"


    // $ANTLR start "rule__Type_decl__Group_4__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7327:1: rule__Type_decl__Group_4__1 : rule__Type_decl__Group_4__1__Impl ;
    public final void rule__Type_decl__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7331:1: ( rule__Type_decl__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7332:2: rule__Type_decl__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__1__Impl_in_rule__Type_decl__Group_4__115174);
            rule__Type_decl__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type_decl__Group_4__1"


    // $ANTLR start "rule__Type_decl__Group_4__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7338:1: rule__Type_decl__Group_4__1__Impl : ( RULE_ID ) ;
    public final void rule__Type_decl__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7342:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7343:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7343:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7344:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getType_declAccess().getIDTerminalRuleCall_4_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Type_decl__Group_4__1__Impl15201); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getType_declAccess().getIDTerminalRuleCall_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type_decl__Group_4__1__Impl"


    // $ANTLR start "rule__Alias_type__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7359:1: rule__Alias_type__Group_0__0 : rule__Alias_type__Group_0__0__Impl rule__Alias_type__Group_0__1 ;
    public final void rule__Alias_type__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7363:1: ( rule__Alias_type__Group_0__0__Impl rule__Alias_type__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7364:2: rule__Alias_type__Group_0__0__Impl rule__Alias_type__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__0__Impl_in_rule__Alias_type__Group_0__015234);
            rule__Alias_type__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__1_in_rule__Alias_type__Group_0__015237);
            rule__Alias_type__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_0__0"


    // $ANTLR start "rule__Alias_type__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7371:1: rule__Alias_type__Group_0__0__Impl : ( 'typedef' ) ;
    public final void rule__Alias_type__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7375:1: ( ( 'typedef' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7376:1: ( 'typedef' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7376:1: ( 'typedef' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7377:1: 'typedef'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getTypedefKeyword_0_0()); 
            }
            match(input,59,FollowSets000.FOLLOW_59_in_rule__Alias_type__Group_0__0__Impl15265); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getTypedefKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_0__0__Impl"


    // $ANTLR start "rule__Alias_type__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7390:1: rule__Alias_type__Group_0__1 : rule__Alias_type__Group_0__1__Impl ;
    public final void rule__Alias_type__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7394:1: ( rule__Alias_type__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7395:2: rule__Alias_type__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__1__Impl_in_rule__Alias_type__Group_0__115296);
            rule__Alias_type__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_0__1"


    // $ANTLR start "rule__Alias_type__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7401:1: rule__Alias_type__Group_0__1__Impl : ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) ) ;
    public final void rule__Alias_type__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7405:1: ( ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7406:1: ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7406:1: ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7407:1: ( rule__Alias_type__ContainedTypeAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7408:1: ( rule__Alias_type__ContainedTypeAssignment_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7408:2: rule__Alias_type__ContainedTypeAssignment_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__ContainedTypeAssignment_0_1_in_rule__Alias_type__Group_0__1__Impl15323);
            rule__Alias_type__ContainedTypeAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_0__1__Impl"


    // $ANTLR start "rule__Alias_type__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7422:1: rule__Alias_type__Group_1__0 : rule__Alias_type__Group_1__0__Impl rule__Alias_type__Group_1__1 ;
    public final void rule__Alias_type__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7426:1: ( rule__Alias_type__Group_1__0__Impl rule__Alias_type__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7427:2: rule__Alias_type__Group_1__0__Impl rule__Alias_type__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__0__Impl_in_rule__Alias_type__Group_1__015357);
            rule__Alias_type__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__1_in_rule__Alias_type__Group_1__015360);
            rule__Alias_type__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_1__0"


    // $ANTLR start "rule__Alias_type__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7434:1: rule__Alias_type__Group_1__0__Impl : ( 'typedef' ) ;
    public final void rule__Alias_type__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7438:1: ( ( 'typedef' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7439:1: ( 'typedef' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7439:1: ( 'typedef' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7440:1: 'typedef'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getTypedefKeyword_1_0()); 
            }
            match(input,59,FollowSets000.FOLLOW_59_in_rule__Alias_type__Group_1__0__Impl15388); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getTypedefKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_1__0__Impl"


    // $ANTLR start "rule__Alias_type__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7453:1: rule__Alias_type__Group_1__1 : rule__Alias_type__Group_1__1__Impl rule__Alias_type__Group_1__2 ;
    public final void rule__Alias_type__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7457:1: ( rule__Alias_type__Group_1__1__Impl rule__Alias_type__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7458:2: rule__Alias_type__Group_1__1__Impl rule__Alias_type__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__1__Impl_in_rule__Alias_type__Group_1__115419);
            rule__Alias_type__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__2_in_rule__Alias_type__Group_1__115422);
            rule__Alias_type__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_1__1"


    // $ANTLR start "rule__Alias_type__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7465:1: rule__Alias_type__Group_1__1__Impl : ( ( rule__Alias_type__Alternatives_1_1 ) ) ;
    public final void rule__Alias_type__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7469:1: ( ( ( rule__Alias_type__Alternatives_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7470:1: ( ( rule__Alias_type__Alternatives_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7470:1: ( ( rule__Alias_type__Alternatives_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7471:1: ( rule__Alias_type__Alternatives_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getAlternatives_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7472:1: ( rule__Alias_type__Alternatives_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7472:2: rule__Alias_type__Alternatives_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Alternatives_1_1_in_rule__Alias_type__Group_1__1__Impl15449);
            rule__Alias_type__Alternatives_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getAlternatives_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_1__1__Impl"


    // $ANTLR start "rule__Alias_type__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7482:1: rule__Alias_type__Group_1__2 : rule__Alias_type__Group_1__2__Impl ;
    public final void rule__Alias_type__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7486:1: ( rule__Alias_type__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7487:2: rule__Alias_type__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__2__Impl_in_rule__Alias_type__Group_1__215479);
            rule__Alias_type__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_1__2"


    // $ANTLR start "rule__Alias_type__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7493:1: rule__Alias_type__Group_1__2__Impl : ( ( rule__Alias_type__IdentifierAssignment_1_2 ) ) ;
    public final void rule__Alias_type__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7497:1: ( ( ( rule__Alias_type__IdentifierAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7498:1: ( ( rule__Alias_type__IdentifierAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7498:1: ( ( rule__Alias_type__IdentifierAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7499:1: ( rule__Alias_type__IdentifierAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getIdentifierAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7500:1: ( rule__Alias_type__IdentifierAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7500:2: rule__Alias_type__IdentifierAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__IdentifierAssignment_1_2_in_rule__Alias_type__Group_1__2__Impl15506);
            rule__Alias_type__IdentifierAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getIdentifierAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__Group_1__2__Impl"


    // $ANTLR start "rule__Array_type_spec__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7516:1: rule__Array_type_spec__Group__0 : rule__Array_type_spec__Group__0__Impl rule__Array_type_spec__Group__1 ;
    public final void rule__Array_type_spec__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7520:1: ( rule__Array_type_spec__Group__0__Impl rule__Array_type_spec__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7521:2: rule__Array_type_spec__Group__0__Impl rule__Array_type_spec__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__0__Impl_in_rule__Array_type_spec__Group__015542);
            rule__Array_type_spec__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__1_in_rule__Array_type_spec__Group__015545);
            rule__Array_type_spec__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group__0"


    // $ANTLR start "rule__Array_type_spec__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7528:1: rule__Array_type_spec__Group__0__Impl : ( ( rule__Array_type_spec__Alternatives_0 ) ) ;
    public final void rule__Array_type_spec__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7532:1: ( ( ( rule__Array_type_spec__Alternatives_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7533:1: ( ( rule__Array_type_spec__Alternatives_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7533:1: ( ( rule__Array_type_spec__Alternatives_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7534:1: ( rule__Array_type_spec__Alternatives_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getAlternatives_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7535:1: ( rule__Array_type_spec__Alternatives_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7535:2: rule__Array_type_spec__Alternatives_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Alternatives_0_in_rule__Array_type_spec__Group__0__Impl15572);
            rule__Array_type_spec__Alternatives_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group__0__Impl"


    // $ANTLR start "rule__Array_type_spec__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7545:1: rule__Array_type_spec__Group__1 : rule__Array_type_spec__Group__1__Impl rule__Array_type_spec__Group__2 ;
    public final void rule__Array_type_spec__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7549:1: ( rule__Array_type_spec__Group__1__Impl rule__Array_type_spec__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7550:2: rule__Array_type_spec__Group__1__Impl rule__Array_type_spec__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__1__Impl_in_rule__Array_type_spec__Group__115602);
            rule__Array_type_spec__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__2_in_rule__Array_type_spec__Group__115605);
            rule__Array_type_spec__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group__1"


    // $ANTLR start "rule__Array_type_spec__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7557:1: rule__Array_type_spec__Group__1__Impl : ( ( rule__Array_type_spec__NameAssignment_1 ) ) ;
    public final void rule__Array_type_spec__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7561:1: ( ( ( rule__Array_type_spec__NameAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7562:1: ( ( rule__Array_type_spec__NameAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7562:1: ( ( rule__Array_type_spec__NameAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7563:1: ( rule__Array_type_spec__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getNameAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7564:1: ( rule__Array_type_spec__NameAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7564:2: rule__Array_type_spec__NameAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__NameAssignment_1_in_rule__Array_type_spec__Group__1__Impl15632);
            rule__Array_type_spec__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group__1__Impl"


    // $ANTLR start "rule__Array_type_spec__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7574:1: rule__Array_type_spec__Group__2 : rule__Array_type_spec__Group__2__Impl ;
    public final void rule__Array_type_spec__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7578:1: ( rule__Array_type_spec__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7579:2: rule__Array_type_spec__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__2__Impl_in_rule__Array_type_spec__Group__215662);
            rule__Array_type_spec__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group__2"


    // $ANTLR start "rule__Array_type_spec__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7585:1: rule__Array_type_spec__Group__2__Impl : ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) ) ;
    public final void rule__Array_type_spec__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7589:1: ( ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7590:1: ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7590:1: ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7591:1: ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7591:1: ( ( rule__Array_type_spec__Group_2__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7592:1: ( rule__Array_type_spec__Group_2__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7593:1: ( rule__Array_type_spec__Group_2__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7593:2: rule__Array_type_spec__Group_2__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15691);
            rule__Array_type_spec__Group_2__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7596:1: ( ( rule__Array_type_spec__Group_2__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7597:1: ( rule__Array_type_spec__Group_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7598:1: ( rule__Array_type_spec__Group_2__0 )*
            loop70:
            do {
                int alt70=2;
                int LA70_0 = input.LA(1);

                if ( (LA70_0==60) ) {
                    alt70=1;
                }


                switch (alt70) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7598:2: rule__Array_type_spec__Group_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15703);
            	    rule__Array_type_spec__Group_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop70;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group__2__Impl"


    // $ANTLR start "rule__Array_type_spec__Group_2__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7615:1: rule__Array_type_spec__Group_2__0 : rule__Array_type_spec__Group_2__0__Impl rule__Array_type_spec__Group_2__1 ;
    public final void rule__Array_type_spec__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7619:1: ( rule__Array_type_spec__Group_2__0__Impl rule__Array_type_spec__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7620:2: rule__Array_type_spec__Group_2__0__Impl rule__Array_type_spec__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__0__Impl_in_rule__Array_type_spec__Group_2__015742);
            rule__Array_type_spec__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__1_in_rule__Array_type_spec__Group_2__015745);
            rule__Array_type_spec__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group_2__0"


    // $ANTLR start "rule__Array_type_spec__Group_2__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7627:1: rule__Array_type_spec__Group_2__0__Impl : ( '[' ) ;
    public final void rule__Array_type_spec__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7631:1: ( ( '[' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7632:1: ( '[' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7632:1: ( '[' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7633:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getLeftSquareBracketKeyword_2_0()); 
            }
            match(input,60,FollowSets000.FOLLOW_60_in_rule__Array_type_spec__Group_2__0__Impl15773); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getLeftSquareBracketKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group_2__0__Impl"


    // $ANTLR start "rule__Array_type_spec__Group_2__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7646:1: rule__Array_type_spec__Group_2__1 : rule__Array_type_spec__Group_2__1__Impl rule__Array_type_spec__Group_2__2 ;
    public final void rule__Array_type_spec__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7650:1: ( rule__Array_type_spec__Group_2__1__Impl rule__Array_type_spec__Group_2__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7651:2: rule__Array_type_spec__Group_2__1__Impl rule__Array_type_spec__Group_2__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__1__Impl_in_rule__Array_type_spec__Group_2__115804);
            rule__Array_type_spec__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__2_in_rule__Array_type_spec__Group_2__115807);
            rule__Array_type_spec__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group_2__1"


    // $ANTLR start "rule__Array_type_spec__Group_2__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7658:1: rule__Array_type_spec__Group_2__1__Impl : ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) ) ;
    public final void rule__Array_type_spec__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7662:1: ( ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7663:1: ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7663:1: ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7664:1: ( rule__Array_type_spec__BoundsAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getBoundsAssignment_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7665:1: ( rule__Array_type_spec__BoundsAssignment_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7665:2: rule__Array_type_spec__BoundsAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__BoundsAssignment_2_1_in_rule__Array_type_spec__Group_2__1__Impl15834);
            rule__Array_type_spec__BoundsAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getBoundsAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group_2__1__Impl"


    // $ANTLR start "rule__Array_type_spec__Group_2__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7675:1: rule__Array_type_spec__Group_2__2 : rule__Array_type_spec__Group_2__2__Impl ;
    public final void rule__Array_type_spec__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7679:1: ( rule__Array_type_spec__Group_2__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7680:2: rule__Array_type_spec__Group_2__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__2__Impl_in_rule__Array_type_spec__Group_2__215864);
            rule__Array_type_spec__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group_2__2"


    // $ANTLR start "rule__Array_type_spec__Group_2__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7686:1: rule__Array_type_spec__Group_2__2__Impl : ( ']' ) ;
    public final void rule__Array_type_spec__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7690:1: ( ( ']' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7691:1: ( ']' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7691:1: ( ']' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7692:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getRightSquareBracketKeyword_2_2()); 
            }
            match(input,61,FollowSets000.FOLLOW_61_in_rule__Array_type_spec__Group_2__2__Impl15892); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getRightSquareBracketKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__Group_2__2__Impl"


    // $ANTLR start "rule__Struct_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7711:1: rule__Struct_type__Group__0 : rule__Struct_type__Group__0__Impl rule__Struct_type__Group__1 ;
    public final void rule__Struct_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7715:1: ( rule__Struct_type__Group__0__Impl rule__Struct_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7716:2: rule__Struct_type__Group__0__Impl rule__Struct_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__0__Impl_in_rule__Struct_type__Group__015929);
            rule__Struct_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__1_in_rule__Struct_type__Group__015932);
            rule__Struct_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__0"


    // $ANTLR start "rule__Struct_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7723:1: rule__Struct_type__Group__0__Impl : ( 'struct' ) ;
    public final void rule__Struct_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7727:1: ( ( 'struct' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7728:1: ( 'struct' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7728:1: ( 'struct' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7729:1: 'struct'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getStructKeyword_0()); 
            }
            match(input,62,FollowSets000.FOLLOW_62_in_rule__Struct_type__Group__0__Impl15960); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getStructKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__0__Impl"


    // $ANTLR start "rule__Struct_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7742:1: rule__Struct_type__Group__1 : rule__Struct_type__Group__1__Impl rule__Struct_type__Group__2 ;
    public final void rule__Struct_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7746:1: ( rule__Struct_type__Group__1__Impl rule__Struct_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7747:2: rule__Struct_type__Group__1__Impl rule__Struct_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__1__Impl_in_rule__Struct_type__Group__115991);
            rule__Struct_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__2_in_rule__Struct_type__Group__115994);
            rule__Struct_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__1"


    // $ANTLR start "rule__Struct_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7754:1: rule__Struct_type__Group__1__Impl : ( ( rule__Struct_type__IdentifierAssignment_1 ) ) ;
    public final void rule__Struct_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7758:1: ( ( ( rule__Struct_type__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7759:1: ( ( rule__Struct_type__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7759:1: ( ( rule__Struct_type__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7760:1: ( rule__Struct_type__IdentifierAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7761:1: ( rule__Struct_type__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7761:2: rule__Struct_type__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__IdentifierAssignment_1_in_rule__Struct_type__Group__1__Impl16021);
            rule__Struct_type__IdentifierAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__1__Impl"


    // $ANTLR start "rule__Struct_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7771:1: rule__Struct_type__Group__2 : rule__Struct_type__Group__2__Impl rule__Struct_type__Group__3 ;
    public final void rule__Struct_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7775:1: ( rule__Struct_type__Group__2__Impl rule__Struct_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7776:2: rule__Struct_type__Group__2__Impl rule__Struct_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__2__Impl_in_rule__Struct_type__Group__216051);
            rule__Struct_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__3_in_rule__Struct_type__Group__216054);
            rule__Struct_type__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__2"


    // $ANTLR start "rule__Struct_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7783:1: rule__Struct_type__Group__2__Impl : ( '{' ) ;
    public final void rule__Struct_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7787:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7788:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7788:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7789:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Struct_type__Group__2__Impl16082); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__2__Impl"


    // $ANTLR start "rule__Struct_type__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7802:1: rule__Struct_type__Group__3 : rule__Struct_type__Group__3__Impl rule__Struct_type__Group__4 ;
    public final void rule__Struct_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7806:1: ( rule__Struct_type__Group__3__Impl rule__Struct_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7807:2: rule__Struct_type__Group__3__Impl rule__Struct_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__3__Impl_in_rule__Struct_type__Group__316113);
            rule__Struct_type__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__4_in_rule__Struct_type__Group__316116);
            rule__Struct_type__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__3"


    // $ANTLR start "rule__Struct_type__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7814:1: rule__Struct_type__Group__3__Impl : ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) ) ;
    public final void rule__Struct_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7818:1: ( ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7819:1: ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7819:1: ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7820:1: ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7820:1: ( ( rule__Struct_type__MembersAssignment_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7821:1: ( rule__Struct_type__MembersAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7822:1: ( rule__Struct_type__MembersAssignment_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7822:2: rule__Struct_type__MembersAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16145);
            rule__Struct_type__MembersAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7825:1: ( ( rule__Struct_type__MembersAssignment_3 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7826:1: ( rule__Struct_type__MembersAssignment_3 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7827:1: ( rule__Struct_type__MembersAssignment_3 )*
            loop71:
            do {
                int alt71=2;
                int LA71_0 = input.LA(1);

                if ( (LA71_0==RULE_ID||(LA71_0>=16 && LA71_0<=27)||LA71_0==62||LA71_0==69||(LA71_0>=72 && LA71_0<=73)) ) {
                    alt71=1;
                }


                switch (alt71) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7827:2: rule__Struct_type__MembersAssignment_3
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16157);
            	    rule__Struct_type__MembersAssignment_3();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop71;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__3__Impl"


    // $ANTLR start "rule__Struct_type__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7838:1: rule__Struct_type__Group__4 : rule__Struct_type__Group__4__Impl ;
    public final void rule__Struct_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7842:1: ( rule__Struct_type__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7843:2: rule__Struct_type__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__4__Impl_in_rule__Struct_type__Group__416190);
            rule__Struct_type__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__4"


    // $ANTLR start "rule__Struct_type__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7849:1: rule__Struct_type__Group__4__Impl : ( '}' ) ;
    public final void rule__Struct_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7853:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7854:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7854:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7855:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Struct_type__Group__4__Impl16218); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__Group__4__Impl"


    // $ANTLR start "rule__Member__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7878:1: rule__Member__Group_0__0 : rule__Member__Group_0__0__Impl rule__Member__Group_0__1 ;
    public final void rule__Member__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7882:1: ( rule__Member__Group_0__0__Impl rule__Member__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7883:2: rule__Member__Group_0__0__Impl rule__Member__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__0__Impl_in_rule__Member__Group_0__016259);
            rule__Member__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__1_in_rule__Member__Group_0__016262);
            rule__Member__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_0__0"


    // $ANTLR start "rule__Member__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7890:1: rule__Member__Group_0__0__Impl : ( ( rule__Member__ContainedTypeAssignment_0_0 ) ) ;
    public final void rule__Member__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7894:1: ( ( ( rule__Member__ContainedTypeAssignment_0_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7895:1: ( ( rule__Member__ContainedTypeAssignment_0_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7895:1: ( ( rule__Member__ContainedTypeAssignment_0_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7896:1: ( rule__Member__ContainedTypeAssignment_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeAssignment_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7897:1: ( rule__Member__ContainedTypeAssignment_0_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7897:2: rule__Member__ContainedTypeAssignment_0_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__ContainedTypeAssignment_0_0_in_rule__Member__Group_0__0__Impl16289);
            rule__Member__ContainedTypeAssignment_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeAssignment_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_0__0__Impl"


    // $ANTLR start "rule__Member__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7907:1: rule__Member__Group_0__1 : rule__Member__Group_0__1__Impl ;
    public final void rule__Member__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7911:1: ( rule__Member__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7912:2: rule__Member__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__1__Impl_in_rule__Member__Group_0__116319);
            rule__Member__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_0__1"


    // $ANTLR start "rule__Member__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7918:1: rule__Member__Group_0__1__Impl : ( ';' ) ;
    public final void rule__Member__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7922:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7923:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7923:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7924:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_0_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_0__1__Impl16347); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_0__1__Impl"


    // $ANTLR start "rule__Member__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7941:1: rule__Member__Group_1__0 : rule__Member__Group_1__0__Impl rule__Member__Group_1__1 ;
    public final void rule__Member__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7945:1: ( rule__Member__Group_1__0__Impl rule__Member__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7946:2: rule__Member__Group_1__0__Impl rule__Member__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__0__Impl_in_rule__Member__Group_1__016382);
            rule__Member__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__1_in_rule__Member__Group_1__016385);
            rule__Member__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_1__0"


    // $ANTLR start "rule__Member__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7953:1: rule__Member__Group_1__0__Impl : ( ( rule__Member__ContainedTypeAssignment_1_0 ) ) ;
    public final void rule__Member__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7957:1: ( ( ( rule__Member__ContainedTypeAssignment_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7958:1: ( ( rule__Member__ContainedTypeAssignment_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7958:1: ( ( rule__Member__ContainedTypeAssignment_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7959:1: ( rule__Member__ContainedTypeAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeAssignment_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7960:1: ( rule__Member__ContainedTypeAssignment_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7960:2: rule__Member__ContainedTypeAssignment_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__ContainedTypeAssignment_1_0_in_rule__Member__Group_1__0__Impl16412);
            rule__Member__ContainedTypeAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_1__0__Impl"


    // $ANTLR start "rule__Member__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7970:1: rule__Member__Group_1__1 : rule__Member__Group_1__1__Impl rule__Member__Group_1__2 ;
    public final void rule__Member__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7974:1: ( rule__Member__Group_1__1__Impl rule__Member__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7975:2: rule__Member__Group_1__1__Impl rule__Member__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__1__Impl_in_rule__Member__Group_1__116442);
            rule__Member__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__2_in_rule__Member__Group_1__116445);
            rule__Member__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_1__1"


    // $ANTLR start "rule__Member__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7982:1: rule__Member__Group_1__1__Impl : ( ( rule__Member__IdentifierAssignment_1_1 ) ) ;
    public final void rule__Member__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7986:1: ( ( ( rule__Member__IdentifierAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7987:1: ( ( rule__Member__IdentifierAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7987:1: ( ( rule__Member__IdentifierAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7988:1: ( rule__Member__IdentifierAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7989:1: ( rule__Member__IdentifierAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7989:2: rule__Member__IdentifierAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__IdentifierAssignment_1_1_in_rule__Member__Group_1__1__Impl16472);
            rule__Member__IdentifierAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_1__1__Impl"


    // $ANTLR start "rule__Member__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7999:1: rule__Member__Group_1__2 : rule__Member__Group_1__2__Impl ;
    public final void rule__Member__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8003:1: ( rule__Member__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8004:2: rule__Member__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__2__Impl_in_rule__Member__Group_1__216502);
            rule__Member__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_1__2"


    // $ANTLR start "rule__Member__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8010:1: rule__Member__Group_1__2__Impl : ( ';' ) ;
    public final void rule__Member__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8014:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8015:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8015:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8016:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_1_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_1__2__Impl16530); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_1__2__Impl"


    // $ANTLR start "rule__Member__Group_2__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8035:1: rule__Member__Group_2__0 : rule__Member__Group_2__0__Impl rule__Member__Group_2__1 ;
    public final void rule__Member__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8039:1: ( rule__Member__Group_2__0__Impl rule__Member__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8040:2: rule__Member__Group_2__0__Impl rule__Member__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__0__Impl_in_rule__Member__Group_2__016567);
            rule__Member__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__1_in_rule__Member__Group_2__016570);
            rule__Member__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_2__0"


    // $ANTLR start "rule__Member__Group_2__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8047:1: rule__Member__Group_2__0__Impl : ( ( rule__Member__ContainedTypeAssignment_2_0 ) ) ;
    public final void rule__Member__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8051:1: ( ( ( rule__Member__ContainedTypeAssignment_2_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8052:1: ( ( rule__Member__ContainedTypeAssignment_2_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8052:1: ( ( rule__Member__ContainedTypeAssignment_2_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8053:1: ( rule__Member__ContainedTypeAssignment_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeAssignment_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8054:1: ( rule__Member__ContainedTypeAssignment_2_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8054:2: rule__Member__ContainedTypeAssignment_2_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__ContainedTypeAssignment_2_0_in_rule__Member__Group_2__0__Impl16597);
            rule__Member__ContainedTypeAssignment_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeAssignment_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_2__0__Impl"


    // $ANTLR start "rule__Member__Group_2__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8064:1: rule__Member__Group_2__1 : rule__Member__Group_2__1__Impl rule__Member__Group_2__2 ;
    public final void rule__Member__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8068:1: ( rule__Member__Group_2__1__Impl rule__Member__Group_2__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8069:2: rule__Member__Group_2__1__Impl rule__Member__Group_2__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__1__Impl_in_rule__Member__Group_2__116627);
            rule__Member__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__2_in_rule__Member__Group_2__116630);
            rule__Member__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_2__1"


    // $ANTLR start "rule__Member__Group_2__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8076:1: rule__Member__Group_2__1__Impl : ( ( rule__Member__IdentifierAssignment_2_1 ) ) ;
    public final void rule__Member__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8080:1: ( ( ( rule__Member__IdentifierAssignment_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8081:1: ( ( rule__Member__IdentifierAssignment_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8081:1: ( ( rule__Member__IdentifierAssignment_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8082:1: ( rule__Member__IdentifierAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierAssignment_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8083:1: ( rule__Member__IdentifierAssignment_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8083:2: rule__Member__IdentifierAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__IdentifierAssignment_2_1_in_rule__Member__Group_2__1__Impl16657);
            rule__Member__IdentifierAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_2__1__Impl"


    // $ANTLR start "rule__Member__Group_2__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8093:1: rule__Member__Group_2__2 : rule__Member__Group_2__2__Impl ;
    public final void rule__Member__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8097:1: ( rule__Member__Group_2__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8098:2: rule__Member__Group_2__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__2__Impl_in_rule__Member__Group_2__216687);
            rule__Member__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_2__2"


    // $ANTLR start "rule__Member__Group_2__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8104:1: rule__Member__Group_2__2__Impl : ( ';' ) ;
    public final void rule__Member__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8108:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8109:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8109:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8110:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_2_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_2__2__Impl16715); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_2__2__Impl"


    // $ANTLR start "rule__Member__Group_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8129:1: rule__Member__Group_3__0 : rule__Member__Group_3__0__Impl rule__Member__Group_3__1 ;
    public final void rule__Member__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8133:1: ( rule__Member__Group_3__0__Impl rule__Member__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8134:2: rule__Member__Group_3__0__Impl rule__Member__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__0__Impl_in_rule__Member__Group_3__016752);
            rule__Member__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__1_in_rule__Member__Group_3__016755);
            rule__Member__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_3__0"


    // $ANTLR start "rule__Member__Group_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8141:1: rule__Member__Group_3__0__Impl : ( ( rule__Member__SharedTypeAssignment_3_0 ) ) ;
    public final void rule__Member__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8145:1: ( ( ( rule__Member__SharedTypeAssignment_3_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8146:1: ( ( rule__Member__SharedTypeAssignment_3_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8146:1: ( ( rule__Member__SharedTypeAssignment_3_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8147:1: ( rule__Member__SharedTypeAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSharedTypeAssignment_3_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8148:1: ( rule__Member__SharedTypeAssignment_3_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8148:2: rule__Member__SharedTypeAssignment_3_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__SharedTypeAssignment_3_0_in_rule__Member__Group_3__0__Impl16782);
            rule__Member__SharedTypeAssignment_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSharedTypeAssignment_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_3__0__Impl"


    // $ANTLR start "rule__Member__Group_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8158:1: rule__Member__Group_3__1 : rule__Member__Group_3__1__Impl rule__Member__Group_3__2 ;
    public final void rule__Member__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8162:1: ( rule__Member__Group_3__1__Impl rule__Member__Group_3__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8163:2: rule__Member__Group_3__1__Impl rule__Member__Group_3__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__1__Impl_in_rule__Member__Group_3__116812);
            rule__Member__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__2_in_rule__Member__Group_3__116815);
            rule__Member__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_3__1"


    // $ANTLR start "rule__Member__Group_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8170:1: rule__Member__Group_3__1__Impl : ( ( rule__Member__IdentifierAssignment_3_1 ) ) ;
    public final void rule__Member__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8174:1: ( ( ( rule__Member__IdentifierAssignment_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8175:1: ( ( rule__Member__IdentifierAssignment_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8175:1: ( ( rule__Member__IdentifierAssignment_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8176:1: ( rule__Member__IdentifierAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierAssignment_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8177:1: ( rule__Member__IdentifierAssignment_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8177:2: rule__Member__IdentifierAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__IdentifierAssignment_3_1_in_rule__Member__Group_3__1__Impl16842);
            rule__Member__IdentifierAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_3__1__Impl"


    // $ANTLR start "rule__Member__Group_3__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8187:1: rule__Member__Group_3__2 : rule__Member__Group_3__2__Impl ;
    public final void rule__Member__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8191:1: ( rule__Member__Group_3__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8192:2: rule__Member__Group_3__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__2__Impl_in_rule__Member__Group_3__216872);
            rule__Member__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_3__2"


    // $ANTLR start "rule__Member__Group_3__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8198:1: rule__Member__Group_3__2__Impl : ( ';' ) ;
    public final void rule__Member__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8202:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8203:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8203:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8204:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_3_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_3__2__Impl16900); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__Group_3__2__Impl"


    // $ANTLR start "rule__Union_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8223:1: rule__Union_type__Group__0 : rule__Union_type__Group__0__Impl rule__Union_type__Group__1 ;
    public final void rule__Union_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8227:1: ( rule__Union_type__Group__0__Impl rule__Union_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8228:2: rule__Union_type__Group__0__Impl rule__Union_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__0__Impl_in_rule__Union_type__Group__016937);
            rule__Union_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__1_in_rule__Union_type__Group__016940);
            rule__Union_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__0"


    // $ANTLR start "rule__Union_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8235:1: rule__Union_type__Group__0__Impl : ( 'union' ) ;
    public final void rule__Union_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8239:1: ( ( 'union' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8240:1: ( 'union' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8240:1: ( 'union' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8241:1: 'union'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionKeyword_0()); 
            }
            match(input,63,FollowSets000.FOLLOW_63_in_rule__Union_type__Group__0__Impl16968); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__0__Impl"


    // $ANTLR start "rule__Union_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8254:1: rule__Union_type__Group__1 : rule__Union_type__Group__1__Impl rule__Union_type__Group__2 ;
    public final void rule__Union_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8258:1: ( rule__Union_type__Group__1__Impl rule__Union_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8259:2: rule__Union_type__Group__1__Impl rule__Union_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__1__Impl_in_rule__Union_type__Group__116999);
            rule__Union_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__2_in_rule__Union_type__Group__117002);
            rule__Union_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__1"


    // $ANTLR start "rule__Union_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8266:1: rule__Union_type__Group__1__Impl : ( ( rule__Union_type__IdentifierAssignment_1 ) ) ;
    public final void rule__Union_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8270:1: ( ( ( rule__Union_type__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8271:1: ( ( rule__Union_type__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8271:1: ( ( rule__Union_type__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8272:1: ( rule__Union_type__IdentifierAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8273:1: ( rule__Union_type__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8273:2: rule__Union_type__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__IdentifierAssignment_1_in_rule__Union_type__Group__1__Impl17029);
            rule__Union_type__IdentifierAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__1__Impl"


    // $ANTLR start "rule__Union_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8283:1: rule__Union_type__Group__2 : rule__Union_type__Group__2__Impl rule__Union_type__Group__3 ;
    public final void rule__Union_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8287:1: ( rule__Union_type__Group__2__Impl rule__Union_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8288:2: rule__Union_type__Group__2__Impl rule__Union_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__2__Impl_in_rule__Union_type__Group__217059);
            rule__Union_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__3_in_rule__Union_type__Group__217062);
            rule__Union_type__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__2"


    // $ANTLR start "rule__Union_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8295:1: rule__Union_type__Group__2__Impl : ( 'switch' ) ;
    public final void rule__Union_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8299:1: ( ( 'switch' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8300:1: ( 'switch' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8300:1: ( 'switch' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8301:1: 'switch'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getSwitchKeyword_2()); 
            }
            match(input,64,FollowSets000.FOLLOW_64_in_rule__Union_type__Group__2__Impl17090); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getSwitchKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__2__Impl"


    // $ANTLR start "rule__Union_type__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8314:1: rule__Union_type__Group__3 : rule__Union_type__Group__3__Impl rule__Union_type__Group__4 ;
    public final void rule__Union_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8318:1: ( rule__Union_type__Group__3__Impl rule__Union_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8319:2: rule__Union_type__Group__3__Impl rule__Union_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__3__Impl_in_rule__Union_type__Group__317121);
            rule__Union_type__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__4_in_rule__Union_type__Group__317124);
            rule__Union_type__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__3"


    // $ANTLR start "rule__Union_type__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8326:1: rule__Union_type__Group__3__Impl : ( '(' ) ;
    public final void rule__Union_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8330:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8331:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8331:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8332:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getLeftParenthesisKeyword_3()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Union_type__Group__3__Impl17152); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getLeftParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__3__Impl"


    // $ANTLR start "rule__Union_type__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8345:1: rule__Union_type__Group__4 : rule__Union_type__Group__4__Impl rule__Union_type__Group__5 ;
    public final void rule__Union_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8349:1: ( rule__Union_type__Group__4__Impl rule__Union_type__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8350:2: rule__Union_type__Group__4__Impl rule__Union_type__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__4__Impl_in_rule__Union_type__Group__417183);
            rule__Union_type__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__5_in_rule__Union_type__Group__417186);
            rule__Union_type__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__4"


    // $ANTLR start "rule__Union_type__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8357:1: rule__Union_type__Group__4__Impl : ( ( rule__Union_type__Alternatives_4 ) ) ;
    public final void rule__Union_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8361:1: ( ( ( rule__Union_type__Alternatives_4 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8362:1: ( ( rule__Union_type__Alternatives_4 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8362:1: ( ( rule__Union_type__Alternatives_4 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8363:1: ( rule__Union_type__Alternatives_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getAlternatives_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8364:1: ( rule__Union_type__Alternatives_4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8364:2: rule__Union_type__Alternatives_4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Alternatives_4_in_rule__Union_type__Group__4__Impl17213);
            rule__Union_type__Alternatives_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getAlternatives_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__4__Impl"


    // $ANTLR start "rule__Union_type__Group__5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8374:1: rule__Union_type__Group__5 : rule__Union_type__Group__5__Impl rule__Union_type__Group__6 ;
    public final void rule__Union_type__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8378:1: ( rule__Union_type__Group__5__Impl rule__Union_type__Group__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8379:2: rule__Union_type__Group__5__Impl rule__Union_type__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__5__Impl_in_rule__Union_type__Group__517243);
            rule__Union_type__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__6_in_rule__Union_type__Group__517246);
            rule__Union_type__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__5"


    // $ANTLR start "rule__Union_type__Group__5__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8386:1: rule__Union_type__Group__5__Impl : ( ')' ) ;
    public final void rule__Union_type__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8390:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8391:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8391:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8392:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Union_type__Group__5__Impl17274); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__5__Impl"


    // $ANTLR start "rule__Union_type__Group__6"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8405:1: rule__Union_type__Group__6 : rule__Union_type__Group__6__Impl rule__Union_type__Group__7 ;
    public final void rule__Union_type__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8409:1: ( rule__Union_type__Group__6__Impl rule__Union_type__Group__7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8410:2: rule__Union_type__Group__6__Impl rule__Union_type__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__6__Impl_in_rule__Union_type__Group__617305);
            rule__Union_type__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__7_in_rule__Union_type__Group__617308);
            rule__Union_type__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__6"


    // $ANTLR start "rule__Union_type__Group__6__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8417:1: rule__Union_type__Group__6__Impl : ( '{' ) ;
    public final void rule__Union_type__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8421:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8422:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8422:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8423:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getLeftCurlyBracketKeyword_6()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Union_type__Group__6__Impl17336); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getLeftCurlyBracketKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__6__Impl"


    // $ANTLR start "rule__Union_type__Group__7"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8436:1: rule__Union_type__Group__7 : rule__Union_type__Group__7__Impl rule__Union_type__Group__8 ;
    public final void rule__Union_type__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8440:1: ( rule__Union_type__Group__7__Impl rule__Union_type__Group__8 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8441:2: rule__Union_type__Group__7__Impl rule__Union_type__Group__8
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__7__Impl_in_rule__Union_type__Group__717367);
            rule__Union_type__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__8_in_rule__Union_type__Group__717370);
            rule__Union_type__Group__8();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__7"


    // $ANTLR start "rule__Union_type__Group__7__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8448:1: rule__Union_type__Group__7__Impl : ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) ) ;
    public final void rule__Union_type__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8452:1: ( ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8453:1: ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8453:1: ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8454:1: ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8454:1: ( ( rule__Union_type__UnionMembersAssignment_7 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8455:1: ( rule__Union_type__UnionMembersAssignment_7 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8456:1: ( rule__Union_type__UnionMembersAssignment_7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8456:2: rule__Union_type__UnionMembersAssignment_7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17399);
            rule__Union_type__UnionMembersAssignment_7();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8459:1: ( ( rule__Union_type__UnionMembersAssignment_7 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8460:1: ( rule__Union_type__UnionMembersAssignment_7 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8461:1: ( rule__Union_type__UnionMembersAssignment_7 )*
            loop72:
            do {
                int alt72=2;
                int LA72_0 = input.LA(1);

                if ( (LA72_0==65||LA72_0==76) ) {
                    alt72=1;
                }


                switch (alt72) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8461:2: rule__Union_type__UnionMembersAssignment_7
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17411);
            	    rule__Union_type__UnionMembersAssignment_7();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop72;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__7__Impl"


    // $ANTLR start "rule__Union_type__Group__8"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8472:1: rule__Union_type__Group__8 : rule__Union_type__Group__8__Impl ;
    public final void rule__Union_type__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8476:1: ( rule__Union_type__Group__8__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8477:2: rule__Union_type__Group__8__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__8__Impl_in_rule__Union_type__Group__817444);
            rule__Union_type__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__8"


    // $ANTLR start "rule__Union_type__Group__8__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8483:1: rule__Union_type__Group__8__Impl : ( '}' ) ;
    public final void rule__Union_type__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8487:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8488:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8488:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8489:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getRightCurlyBracketKeyword_8()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Union_type__Group__8__Impl17472); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getRightCurlyBracketKeyword_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__Group__8__Impl"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8520:1: rule__Switch_type_spec_cont__Group_1__0 : rule__Switch_type_spec_cont__Group_1__0__Impl rule__Switch_type_spec_cont__Group_1__1 ;
    public final void rule__Switch_type_spec_cont__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8524:1: ( rule__Switch_type_spec_cont__Group_1__0__Impl rule__Switch_type_spec_cont__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8525:2: rule__Switch_type_spec_cont__Group_1__0__Impl rule__Switch_type_spec_cont__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__0__Impl_in_rule__Switch_type_spec_cont__Group_1__017521);
            rule__Switch_type_spec_cont__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__1_in_rule__Switch_type_spec_cont__Group_1__017524);
            rule__Switch_type_spec_cont__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_1__0"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8532:1: rule__Switch_type_spec_cont__Group_1__0__Impl : ( () ) ;
    public final void rule__Switch_type_spec_cont__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8536:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8537:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8537:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8538:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8539:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8541:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_1__0__Impl"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8551:1: rule__Switch_type_spec_cont__Group_1__1 : rule__Switch_type_spec_cont__Group_1__1__Impl ;
    public final void rule__Switch_type_spec_cont__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8555:1: ( rule__Switch_type_spec_cont__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8556:2: rule__Switch_type_spec_cont__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__1__Impl_in_rule__Switch_type_spec_cont__Group_1__117582);
            rule__Switch_type_spec_cont__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_1__1"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8562:1: rule__Switch_type_spec_cont__Group_1__1__Impl : ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) ) ;
    public final void rule__Switch_type_spec_cont__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8566:1: ( ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8567:1: ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8567:1: ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8568:1: ( rule__Switch_type_spec_cont__KindAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8569:1: ( rule__Switch_type_spec_cont__KindAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8569:2: rule__Switch_type_spec_cont__KindAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__KindAssignment_1_1_in_rule__Switch_type_spec_cont__Group_1__1__Impl17609);
            rule__Switch_type_spec_cont__KindAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_1__1__Impl"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_2__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8583:1: rule__Switch_type_spec_cont__Group_2__0 : rule__Switch_type_spec_cont__Group_2__0__Impl rule__Switch_type_spec_cont__Group_2__1 ;
    public final void rule__Switch_type_spec_cont__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8587:1: ( rule__Switch_type_spec_cont__Group_2__0__Impl rule__Switch_type_spec_cont__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8588:2: rule__Switch_type_spec_cont__Group_2__0__Impl rule__Switch_type_spec_cont__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__0__Impl_in_rule__Switch_type_spec_cont__Group_2__017643);
            rule__Switch_type_spec_cont__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__1_in_rule__Switch_type_spec_cont__Group_2__017646);
            rule__Switch_type_spec_cont__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_2__0"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_2__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8595:1: rule__Switch_type_spec_cont__Group_2__0__Impl : ( () ) ;
    public final void rule__Switch_type_spec_cont__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8599:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8600:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8600:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8601:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8602:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8604:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_2_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_2__0__Impl"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_2__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8614:1: rule__Switch_type_spec_cont__Group_2__1 : rule__Switch_type_spec_cont__Group_2__1__Impl ;
    public final void rule__Switch_type_spec_cont__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8618:1: ( rule__Switch_type_spec_cont__Group_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8619:2: rule__Switch_type_spec_cont__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__1__Impl_in_rule__Switch_type_spec_cont__Group_2__117704);
            rule__Switch_type_spec_cont__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_2__1"


    // $ANTLR start "rule__Switch_type_spec_cont__Group_2__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8625:1: rule__Switch_type_spec_cont__Group_2__1__Impl : ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) ) ;
    public final void rule__Switch_type_spec_cont__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8629:1: ( ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8630:1: ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8630:1: ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8631:1: ( rule__Switch_type_spec_cont__KindAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8632:1: ( rule__Switch_type_spec_cont__KindAssignment_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8632:2: rule__Switch_type_spec_cont__KindAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__KindAssignment_2_1_in_rule__Switch_type_spec_cont__Group_2__1__Impl17731);
            rule__Switch_type_spec_cont__KindAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__Group_2__1__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8646:1: rule__Case_stmt__Group_0__0 : rule__Case_stmt__Group_0__0__Impl rule__Case_stmt__Group_0__1 ;
    public final void rule__Case_stmt__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8650:1: ( rule__Case_stmt__Group_0__0__Impl rule__Case_stmt__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8651:2: rule__Case_stmt__Group_0__0__Impl rule__Case_stmt__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__0__Impl_in_rule__Case_stmt__Group_0__017765);
            rule__Case_stmt__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__1_in_rule__Case_stmt__Group_0__017768);
            rule__Case_stmt__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0__0"


    // $ANTLR start "rule__Case_stmt__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8658:1: rule__Case_stmt__Group_0__0__Impl : ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) ) ;
    public final void rule__Case_stmt__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8662:1: ( ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8663:1: ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8663:1: ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8664:1: ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8664:1: ( ( rule__Case_stmt__Alternatives_0_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8665:1: ( rule__Case_stmt__Alternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8666:1: ( rule__Case_stmt__Alternatives_0_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8666:2: rule__Case_stmt__Alternatives_0_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17797);
            rule__Case_stmt__Alternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8669:1: ( ( rule__Case_stmt__Alternatives_0_0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8670:1: ( rule__Case_stmt__Alternatives_0_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8671:1: ( rule__Case_stmt__Alternatives_0_0 )*
            loop73:
            do {
                int alt73=2;
                int LA73_0 = input.LA(1);

                if ( (LA73_0==65||LA73_0==76) ) {
                    alt73=1;
                }


                switch (alt73) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8671:2: rule__Case_stmt__Alternatives_0_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17809);
            	    rule__Case_stmt__Alternatives_0_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop73;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0__0__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8682:1: rule__Case_stmt__Group_0__1 : rule__Case_stmt__Group_0__1__Impl rule__Case_stmt__Group_0__2 ;
    public final void rule__Case_stmt__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8686:1: ( rule__Case_stmt__Group_0__1__Impl rule__Case_stmt__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8687:2: rule__Case_stmt__Group_0__1__Impl rule__Case_stmt__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__1__Impl_in_rule__Case_stmt__Group_0__117842);
            rule__Case_stmt__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__2_in_rule__Case_stmt__Group_0__117845);
            rule__Case_stmt__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0__1"


    // $ANTLR start "rule__Case_stmt__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8694:1: rule__Case_stmt__Group_0__1__Impl : ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) ) ;
    public final void rule__Case_stmt__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8698:1: ( ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8699:1: ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8699:1: ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8700:1: ( rule__Case_stmt__ContainedTypeAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8701:1: ( rule__Case_stmt__ContainedTypeAssignment_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8701:2: rule__Case_stmt__ContainedTypeAssignment_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__ContainedTypeAssignment_0_1_in_rule__Case_stmt__Group_0__1__Impl17872);
            rule__Case_stmt__ContainedTypeAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0__1__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8711:1: rule__Case_stmt__Group_0__2 : rule__Case_stmt__Group_0__2__Impl ;
    public final void rule__Case_stmt__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8715:1: ( rule__Case_stmt__Group_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8716:2: rule__Case_stmt__Group_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__2__Impl_in_rule__Case_stmt__Group_0__217902);
            rule__Case_stmt__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0__2"


    // $ANTLR start "rule__Case_stmt__Group_0__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8722:1: rule__Case_stmt__Group_0__2__Impl : ( ';' ) ;
    public final void rule__Case_stmt__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8726:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8727:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8727:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8728:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_0_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Case_stmt__Group_0__2__Impl17930); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0__2__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0_0_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8747:1: rule__Case_stmt__Group_0_0_0__0 : rule__Case_stmt__Group_0_0_0__0__Impl rule__Case_stmt__Group_0_0_0__1 ;
    public final void rule__Case_stmt__Group_0_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8751:1: ( rule__Case_stmt__Group_0_0_0__0__Impl rule__Case_stmt__Group_0_0_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8752:2: rule__Case_stmt__Group_0_0_0__0__Impl rule__Case_stmt__Group_0_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__0__Impl_in_rule__Case_stmt__Group_0_0_0__017967);
            rule__Case_stmt__Group_0_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__1_in_rule__Case_stmt__Group_0_0_0__017970);
            rule__Case_stmt__Group_0_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_0__0"


    // $ANTLR start "rule__Case_stmt__Group_0_0_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8759:1: rule__Case_stmt__Group_0_0_0__0__Impl : ( 'case' ) ;
    public final void rule__Case_stmt__Group_0_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8763:1: ( ( 'case' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8764:1: ( 'case' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8764:1: ( 'case' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8765:1: 'case'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getCaseKeyword_0_0_0_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_65_in_rule__Case_stmt__Group_0_0_0__0__Impl17998); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getCaseKeyword_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_0__0__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0_0_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8778:1: rule__Case_stmt__Group_0_0_0__1 : rule__Case_stmt__Group_0_0_0__1__Impl rule__Case_stmt__Group_0_0_0__2 ;
    public final void rule__Case_stmt__Group_0_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8782:1: ( rule__Case_stmt__Group_0_0_0__1__Impl rule__Case_stmt__Group_0_0_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8783:2: rule__Case_stmt__Group_0_0_0__1__Impl rule__Case_stmt__Group_0_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__1__Impl_in_rule__Case_stmt__Group_0_0_0__118029);
            rule__Case_stmt__Group_0_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__2_in_rule__Case_stmt__Group_0_0_0__118032);
            rule__Case_stmt__Group_0_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_0__1"


    // $ANTLR start "rule__Case_stmt__Group_0_0_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8790:1: rule__Case_stmt__Group_0_0_0__1__Impl : ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) ) ;
    public final void rule__Case_stmt__Group_0_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8794:1: ( ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8795:1: ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8795:1: ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8796:1: ( rule__Case_stmt__LabelAssignment_0_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelAssignment_0_0_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8797:1: ( rule__Case_stmt__LabelAssignment_0_0_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8797:2: rule__Case_stmt__LabelAssignment_0_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__LabelAssignment_0_0_0_1_in_rule__Case_stmt__Group_0_0_0__1__Impl18059);
            rule__Case_stmt__LabelAssignment_0_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelAssignment_0_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_0__1__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0_0_0__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8807:1: rule__Case_stmt__Group_0_0_0__2 : rule__Case_stmt__Group_0_0_0__2__Impl ;
    public final void rule__Case_stmt__Group_0_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8811:1: ( rule__Case_stmt__Group_0_0_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8812:2: rule__Case_stmt__Group_0_0_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__2__Impl_in_rule__Case_stmt__Group_0_0_0__218089);
            rule__Case_stmt__Group_0_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_0__2"


    // $ANTLR start "rule__Case_stmt__Group_0_0_0__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8818:1: rule__Case_stmt__Group_0_0_0__2__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_0_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8822:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8823:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8823:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8824:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_0_2()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_0_0_0__2__Impl18117); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_0__2__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0_0_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8843:1: rule__Case_stmt__Group_0_0_1__0 : rule__Case_stmt__Group_0_0_1__0__Impl rule__Case_stmt__Group_0_0_1__1 ;
    public final void rule__Case_stmt__Group_0_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8847:1: ( rule__Case_stmt__Group_0_0_1__0__Impl rule__Case_stmt__Group_0_0_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8848:2: rule__Case_stmt__Group_0_0_1__0__Impl rule__Case_stmt__Group_0_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__0__Impl_in_rule__Case_stmt__Group_0_0_1__018154);
            rule__Case_stmt__Group_0_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__1_in_rule__Case_stmt__Group_0_0_1__018157);
            rule__Case_stmt__Group_0_0_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_1__0"


    // $ANTLR start "rule__Case_stmt__Group_0_0_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8855:1: rule__Case_stmt__Group_0_0_1__0__Impl : ( ( rule__Case_stmt__IsDefaultAssignment_0_0_1_0 ) ) ;
    public final void rule__Case_stmt__Group_0_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8859:1: ( ( ( rule__Case_stmt__IsDefaultAssignment_0_0_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8860:1: ( ( rule__Case_stmt__IsDefaultAssignment_0_0_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8860:1: ( ( rule__Case_stmt__IsDefaultAssignment_0_0_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8861:1: ( rule__Case_stmt__IsDefaultAssignment_0_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIsDefaultAssignment_0_0_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8862:1: ( rule__Case_stmt__IsDefaultAssignment_0_0_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8862:2: rule__Case_stmt__IsDefaultAssignment_0_0_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__IsDefaultAssignment_0_0_1_0_in_rule__Case_stmt__Group_0_0_1__0__Impl18184);
            rule__Case_stmt__IsDefaultAssignment_0_0_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIsDefaultAssignment_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_1__0__Impl"


    // $ANTLR start "rule__Case_stmt__Group_0_0_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8872:1: rule__Case_stmt__Group_0_0_1__1 : rule__Case_stmt__Group_0_0_1__1__Impl ;
    public final void rule__Case_stmt__Group_0_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8876:1: ( rule__Case_stmt__Group_0_0_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8877:2: rule__Case_stmt__Group_0_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__1__Impl_in_rule__Case_stmt__Group_0_0_1__118214);
            rule__Case_stmt__Group_0_0_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_1__1"


    // $ANTLR start "rule__Case_stmt__Group_0_0_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8883:1: rule__Case_stmt__Group_0_0_1__1__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_0_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8887:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8888:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8888:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8889:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_1_1()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_0_0_1__1__Impl18242); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_0_0_1__1__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8906:1: rule__Case_stmt__Group_1__0 : rule__Case_stmt__Group_1__0__Impl rule__Case_stmt__Group_1__1 ;
    public final void rule__Case_stmt__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8910:1: ( rule__Case_stmt__Group_1__0__Impl rule__Case_stmt__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8911:2: rule__Case_stmt__Group_1__0__Impl rule__Case_stmt__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__0__Impl_in_rule__Case_stmt__Group_1__018277);
            rule__Case_stmt__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__1_in_rule__Case_stmt__Group_1__018280);
            rule__Case_stmt__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__0"


    // $ANTLR start "rule__Case_stmt__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8918:1: rule__Case_stmt__Group_1__0__Impl : ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) ) ;
    public final void rule__Case_stmt__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8922:1: ( ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8923:1: ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8923:1: ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8924:1: ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8924:1: ( ( rule__Case_stmt__Alternatives_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8925:1: ( rule__Case_stmt__Alternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8926:1: ( rule__Case_stmt__Alternatives_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8926:2: rule__Case_stmt__Alternatives_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18309);
            rule__Case_stmt__Alternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8929:1: ( ( rule__Case_stmt__Alternatives_1_0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8930:1: ( rule__Case_stmt__Alternatives_1_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8931:1: ( rule__Case_stmt__Alternatives_1_0 )*
            loop74:
            do {
                int alt74=2;
                int LA74_0 = input.LA(1);

                if ( (LA74_0==65||LA74_0==76) ) {
                    alt74=1;
                }


                switch (alt74) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8931:2: rule__Case_stmt__Alternatives_1_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18321);
            	    rule__Case_stmt__Alternatives_1_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop74;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__0__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8942:1: rule__Case_stmt__Group_1__1 : rule__Case_stmt__Group_1__1__Impl rule__Case_stmt__Group_1__2 ;
    public final void rule__Case_stmt__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8946:1: ( rule__Case_stmt__Group_1__1__Impl rule__Case_stmt__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8947:2: rule__Case_stmt__Group_1__1__Impl rule__Case_stmt__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__1__Impl_in_rule__Case_stmt__Group_1__118354);
            rule__Case_stmt__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__2_in_rule__Case_stmt__Group_1__118357);
            rule__Case_stmt__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__1"


    // $ANTLR start "rule__Case_stmt__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8954:1: rule__Case_stmt__Group_1__1__Impl : ( ( rule__Case_stmt__Alternatives_1_1 ) ) ;
    public final void rule__Case_stmt__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8958:1: ( ( ( rule__Case_stmt__Alternatives_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8959:1: ( ( rule__Case_stmt__Alternatives_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8959:1: ( ( rule__Case_stmt__Alternatives_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8960:1: ( rule__Case_stmt__Alternatives_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8961:1: ( rule__Case_stmt__Alternatives_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8961:2: rule__Case_stmt__Alternatives_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_1_1_in_rule__Case_stmt__Group_1__1__Impl18384);
            rule__Case_stmt__Alternatives_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__1__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8971:1: rule__Case_stmt__Group_1__2 : rule__Case_stmt__Group_1__2__Impl rule__Case_stmt__Group_1__3 ;
    public final void rule__Case_stmt__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8975:1: ( rule__Case_stmt__Group_1__2__Impl rule__Case_stmt__Group_1__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8976:2: rule__Case_stmt__Group_1__2__Impl rule__Case_stmt__Group_1__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__2__Impl_in_rule__Case_stmt__Group_1__218414);
            rule__Case_stmt__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__3_in_rule__Case_stmt__Group_1__218417);
            rule__Case_stmt__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__2"


    // $ANTLR start "rule__Case_stmt__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8983:1: rule__Case_stmt__Group_1__2__Impl : ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) ) ;
    public final void rule__Case_stmt__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8987:1: ( ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8988:1: ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8988:1: ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8989:1: ( rule__Case_stmt__IdentifierAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIdentifierAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8990:1: ( rule__Case_stmt__IdentifierAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8990:2: rule__Case_stmt__IdentifierAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__IdentifierAssignment_1_2_in_rule__Case_stmt__Group_1__2__Impl18444);
            rule__Case_stmt__IdentifierAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIdentifierAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__2__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9000:1: rule__Case_stmt__Group_1__3 : rule__Case_stmt__Group_1__3__Impl ;
    public final void rule__Case_stmt__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9004:1: ( rule__Case_stmt__Group_1__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9005:2: rule__Case_stmt__Group_1__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__3__Impl_in_rule__Case_stmt__Group_1__318474);
            rule__Case_stmt__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__3"


    // $ANTLR start "rule__Case_stmt__Group_1__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9011:1: rule__Case_stmt__Group_1__3__Impl : ( ';' ) ;
    public final void rule__Case_stmt__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9015:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9016:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9016:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9017:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_1_3()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Case_stmt__Group_1__3__Impl18502); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1__3__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1_0_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9038:1: rule__Case_stmt__Group_1_0_0__0 : rule__Case_stmt__Group_1_0_0__0__Impl rule__Case_stmt__Group_1_0_0__1 ;
    public final void rule__Case_stmt__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9042:1: ( rule__Case_stmt__Group_1_0_0__0__Impl rule__Case_stmt__Group_1_0_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9043:2: rule__Case_stmt__Group_1_0_0__0__Impl rule__Case_stmt__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__0__Impl_in_rule__Case_stmt__Group_1_0_0__018541);
            rule__Case_stmt__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__1_in_rule__Case_stmt__Group_1_0_0__018544);
            rule__Case_stmt__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_0__0"


    // $ANTLR start "rule__Case_stmt__Group_1_0_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9050:1: rule__Case_stmt__Group_1_0_0__0__Impl : ( 'case' ) ;
    public final void rule__Case_stmt__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9054:1: ( ( 'case' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9055:1: ( 'case' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9055:1: ( 'case' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9056:1: 'case'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getCaseKeyword_1_0_0_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_65_in_rule__Case_stmt__Group_1_0_0__0__Impl18572); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getCaseKeyword_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1_0_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9069:1: rule__Case_stmt__Group_1_0_0__1 : rule__Case_stmt__Group_1_0_0__1__Impl rule__Case_stmt__Group_1_0_0__2 ;
    public final void rule__Case_stmt__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9073:1: ( rule__Case_stmt__Group_1_0_0__1__Impl rule__Case_stmt__Group_1_0_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9074:2: rule__Case_stmt__Group_1_0_0__1__Impl rule__Case_stmt__Group_1_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__1__Impl_in_rule__Case_stmt__Group_1_0_0__118603);
            rule__Case_stmt__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__2_in_rule__Case_stmt__Group_1_0_0__118606);
            rule__Case_stmt__Group_1_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_0__1"


    // $ANTLR start "rule__Case_stmt__Group_1_0_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9081:1: rule__Case_stmt__Group_1_0_0__1__Impl : ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) ) ;
    public final void rule__Case_stmt__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9085:1: ( ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9086:1: ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9086:1: ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9087:1: ( rule__Case_stmt__LabelAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelAssignment_1_0_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9088:1: ( rule__Case_stmt__LabelAssignment_1_0_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9088:2: rule__Case_stmt__LabelAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__LabelAssignment_1_0_0_1_in_rule__Case_stmt__Group_1_0_0__1__Impl18633);
            rule__Case_stmt__LabelAssignment_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1_0_0__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9098:1: rule__Case_stmt__Group_1_0_0__2 : rule__Case_stmt__Group_1_0_0__2__Impl ;
    public final void rule__Case_stmt__Group_1_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9102:1: ( rule__Case_stmt__Group_1_0_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9103:2: rule__Case_stmt__Group_1_0_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__2__Impl_in_rule__Case_stmt__Group_1_0_0__218663);
            rule__Case_stmt__Group_1_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_0__2"


    // $ANTLR start "rule__Case_stmt__Group_1_0_0__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9109:1: rule__Case_stmt__Group_1_0_0__2__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_1_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9113:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9114:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9114:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9115:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_0_2()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_1_0_0__2__Impl18691); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_0__2__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1_0_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9134:1: rule__Case_stmt__Group_1_0_1__0 : rule__Case_stmt__Group_1_0_1__0__Impl rule__Case_stmt__Group_1_0_1__1 ;
    public final void rule__Case_stmt__Group_1_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9138:1: ( rule__Case_stmt__Group_1_0_1__0__Impl rule__Case_stmt__Group_1_0_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9139:2: rule__Case_stmt__Group_1_0_1__0__Impl rule__Case_stmt__Group_1_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__0__Impl_in_rule__Case_stmt__Group_1_0_1__018728);
            rule__Case_stmt__Group_1_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__1_in_rule__Case_stmt__Group_1_0_1__018731);
            rule__Case_stmt__Group_1_0_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_1__0"


    // $ANTLR start "rule__Case_stmt__Group_1_0_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9146:1: rule__Case_stmt__Group_1_0_1__0__Impl : ( ( rule__Case_stmt__IsDefaultAssignment_1_0_1_0 ) ) ;
    public final void rule__Case_stmt__Group_1_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9150:1: ( ( ( rule__Case_stmt__IsDefaultAssignment_1_0_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9151:1: ( ( rule__Case_stmt__IsDefaultAssignment_1_0_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9151:1: ( ( rule__Case_stmt__IsDefaultAssignment_1_0_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9152:1: ( rule__Case_stmt__IsDefaultAssignment_1_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIsDefaultAssignment_1_0_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9153:1: ( rule__Case_stmt__IsDefaultAssignment_1_0_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9153:2: rule__Case_stmt__IsDefaultAssignment_1_0_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__IsDefaultAssignment_1_0_1_0_in_rule__Case_stmt__Group_1_0_1__0__Impl18758);
            rule__Case_stmt__IsDefaultAssignment_1_0_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIsDefaultAssignment_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_1__0__Impl"


    // $ANTLR start "rule__Case_stmt__Group_1_0_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9163:1: rule__Case_stmt__Group_1_0_1__1 : rule__Case_stmt__Group_1_0_1__1__Impl ;
    public final void rule__Case_stmt__Group_1_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9167:1: ( rule__Case_stmt__Group_1_0_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9168:2: rule__Case_stmt__Group_1_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__1__Impl_in_rule__Case_stmt__Group_1_0_1__118788);
            rule__Case_stmt__Group_1_0_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_1__1"


    // $ANTLR start "rule__Case_stmt__Group_1_0_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9174:1: rule__Case_stmt__Group_1_0_1__1__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_1_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9178:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9179:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9179:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9180:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_1_1()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_1_0_1__1__Impl18816); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__Group_1_0_1__1__Impl"


    // $ANTLR start "rule__Enum_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9197:1: rule__Enum_type__Group__0 : rule__Enum_type__Group__0__Impl rule__Enum_type__Group__1 ;
    public final void rule__Enum_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9201:1: ( rule__Enum_type__Group__0__Impl rule__Enum_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9202:2: rule__Enum_type__Group__0__Impl rule__Enum_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__0__Impl_in_rule__Enum_type__Group__018851);
            rule__Enum_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__1_in_rule__Enum_type__Group__018854);
            rule__Enum_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__0"


    // $ANTLR start "rule__Enum_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9209:1: rule__Enum_type__Group__0__Impl : ( 'enum' ) ;
    public final void rule__Enum_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9213:1: ( ( 'enum' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9214:1: ( 'enum' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9214:1: ( 'enum' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9215:1: 'enum'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getEnumKeyword_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_66_in_rule__Enum_type__Group__0__Impl18882); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getEnumKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__0__Impl"


    // $ANTLR start "rule__Enum_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9228:1: rule__Enum_type__Group__1 : rule__Enum_type__Group__1__Impl rule__Enum_type__Group__2 ;
    public final void rule__Enum_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9232:1: ( rule__Enum_type__Group__1__Impl rule__Enum_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9233:2: rule__Enum_type__Group__1__Impl rule__Enum_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__1__Impl_in_rule__Enum_type__Group__118913);
            rule__Enum_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__2_in_rule__Enum_type__Group__118916);
            rule__Enum_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__1"


    // $ANTLR start "rule__Enum_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9240:1: rule__Enum_type__Group__1__Impl : ( ( rule__Enum_type__IdentifierAssignment_1 ) ) ;
    public final void rule__Enum_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9244:1: ( ( ( rule__Enum_type__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9245:1: ( ( rule__Enum_type__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9245:1: ( ( rule__Enum_type__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9246:1: ( rule__Enum_type__IdentifierAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9247:1: ( rule__Enum_type__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9247:2: rule__Enum_type__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__IdentifierAssignment_1_in_rule__Enum_type__Group__1__Impl18943);
            rule__Enum_type__IdentifierAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__1__Impl"


    // $ANTLR start "rule__Enum_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9257:1: rule__Enum_type__Group__2 : rule__Enum_type__Group__2__Impl rule__Enum_type__Group__3 ;
    public final void rule__Enum_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9261:1: ( rule__Enum_type__Group__2__Impl rule__Enum_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9262:2: rule__Enum_type__Group__2__Impl rule__Enum_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__2__Impl_in_rule__Enum_type__Group__218973);
            rule__Enum_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__3_in_rule__Enum_type__Group__218976);
            rule__Enum_type__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__2"


    // $ANTLR start "rule__Enum_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9269:1: rule__Enum_type__Group__2__Impl : ( '{' ) ;
    public final void rule__Enum_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9273:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9274:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9274:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9275:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Enum_type__Group__2__Impl19004); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__2__Impl"


    // $ANTLR start "rule__Enum_type__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9288:1: rule__Enum_type__Group__3 : rule__Enum_type__Group__3__Impl rule__Enum_type__Group__4 ;
    public final void rule__Enum_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9292:1: ( rule__Enum_type__Group__3__Impl rule__Enum_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9293:2: rule__Enum_type__Group__3__Impl rule__Enum_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__3__Impl_in_rule__Enum_type__Group__319035);
            rule__Enum_type__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__4_in_rule__Enum_type__Group__319038);
            rule__Enum_type__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__3"


    // $ANTLR start "rule__Enum_type__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9300:1: rule__Enum_type__Group__3__Impl : ( ( rule__Enum_type__MembersAssignment_3 ) ) ;
    public final void rule__Enum_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9304:1: ( ( ( rule__Enum_type__MembersAssignment_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9305:1: ( ( rule__Enum_type__MembersAssignment_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9305:1: ( ( rule__Enum_type__MembersAssignment_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9306:1: ( rule__Enum_type__MembersAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9307:1: ( rule__Enum_type__MembersAssignment_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9307:2: rule__Enum_type__MembersAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__MembersAssignment_3_in_rule__Enum_type__Group__3__Impl19065);
            rule__Enum_type__MembersAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__3__Impl"


    // $ANTLR start "rule__Enum_type__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9317:1: rule__Enum_type__Group__4 : rule__Enum_type__Group__4__Impl rule__Enum_type__Group__5 ;
    public final void rule__Enum_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9321:1: ( rule__Enum_type__Group__4__Impl rule__Enum_type__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9322:2: rule__Enum_type__Group__4__Impl rule__Enum_type__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__4__Impl_in_rule__Enum_type__Group__419095);
            rule__Enum_type__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__5_in_rule__Enum_type__Group__419098);
            rule__Enum_type__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__4"


    // $ANTLR start "rule__Enum_type__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9329:1: rule__Enum_type__Group__4__Impl : ( ( rule__Enum_type__Group_4__0 )* ) ;
    public final void rule__Enum_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9333:1: ( ( ( rule__Enum_type__Group_4__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9334:1: ( ( rule__Enum_type__Group_4__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9334:1: ( ( rule__Enum_type__Group_4__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9335:1: ( rule__Enum_type__Group_4__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getGroup_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9336:1: ( rule__Enum_type__Group_4__0 )*
            loop75:
            do {
                int alt75=2;
                int LA75_0 = input.LA(1);

                if ( (LA75_0==49) ) {
                    alt75=1;
                }


                switch (alt75) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9336:2: rule__Enum_type__Group_4__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__0_in_rule__Enum_type__Group__4__Impl19125);
            	    rule__Enum_type__Group_4__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop75;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__4__Impl"


    // $ANTLR start "rule__Enum_type__Group__5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9346:1: rule__Enum_type__Group__5 : rule__Enum_type__Group__5__Impl ;
    public final void rule__Enum_type__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9350:1: ( rule__Enum_type__Group__5__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9351:2: rule__Enum_type__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__5__Impl_in_rule__Enum_type__Group__519156);
            rule__Enum_type__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__5"


    // $ANTLR start "rule__Enum_type__Group__5__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9357:1: rule__Enum_type__Group__5__Impl : ( '}' ) ;
    public final void rule__Enum_type__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9361:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9362:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9362:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9363:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getRightCurlyBracketKeyword_5()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Enum_type__Group__5__Impl19184); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getRightCurlyBracketKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group__5__Impl"


    // $ANTLR start "rule__Enum_type__Group_4__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9388:1: rule__Enum_type__Group_4__0 : rule__Enum_type__Group_4__0__Impl rule__Enum_type__Group_4__1 ;
    public final void rule__Enum_type__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9392:1: ( rule__Enum_type__Group_4__0__Impl rule__Enum_type__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9393:2: rule__Enum_type__Group_4__0__Impl rule__Enum_type__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__0__Impl_in_rule__Enum_type__Group_4__019227);
            rule__Enum_type__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__1_in_rule__Enum_type__Group_4__019230);
            rule__Enum_type__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group_4__0"


    // $ANTLR start "rule__Enum_type__Group_4__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9400:1: rule__Enum_type__Group_4__0__Impl : ( ',' ) ;
    public final void rule__Enum_type__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9404:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9405:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9405:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9406:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getCommaKeyword_4_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Enum_type__Group_4__0__Impl19258); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getCommaKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group_4__0__Impl"


    // $ANTLR start "rule__Enum_type__Group_4__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9419:1: rule__Enum_type__Group_4__1 : rule__Enum_type__Group_4__1__Impl ;
    public final void rule__Enum_type__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9423:1: ( rule__Enum_type__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9424:2: rule__Enum_type__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__1__Impl_in_rule__Enum_type__Group_4__119289);
            rule__Enum_type__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group_4__1"


    // $ANTLR start "rule__Enum_type__Group_4__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9430:1: rule__Enum_type__Group_4__1__Impl : ( ( rule__Enum_type__MembersAssignment_4_1 ) ) ;
    public final void rule__Enum_type__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9434:1: ( ( ( rule__Enum_type__MembersAssignment_4_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9435:1: ( ( rule__Enum_type__MembersAssignment_4_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9435:1: ( ( rule__Enum_type__MembersAssignment_4_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9436:1: ( rule__Enum_type__MembersAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersAssignment_4_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9437:1: ( rule__Enum_type__MembersAssignment_4_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9437:2: rule__Enum_type__MembersAssignment_4_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__MembersAssignment_4_1_in_rule__Enum_type__Group_4__1__Impl19316);
            rule__Enum_type__MembersAssignment_4_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__Group_4__1__Impl"


    // $ANTLR start "rule__Constr_forward_decl__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9451:1: rule__Constr_forward_decl__Group_0__0 : rule__Constr_forward_decl__Group_0__0__Impl rule__Constr_forward_decl__Group_0__1 ;
    public final void rule__Constr_forward_decl__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9455:1: ( rule__Constr_forward_decl__Group_0__0__Impl rule__Constr_forward_decl__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9456:2: rule__Constr_forward_decl__Group_0__0__Impl rule__Constr_forward_decl__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__0__Impl_in_rule__Constr_forward_decl__Group_0__019350);
            rule__Constr_forward_decl__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__1_in_rule__Constr_forward_decl__Group_0__019353);
            rule__Constr_forward_decl__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_0__0"


    // $ANTLR start "rule__Constr_forward_decl__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9463:1: rule__Constr_forward_decl__Group_0__0__Impl : ( 'struct' ) ;
    public final void rule__Constr_forward_decl__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9467:1: ( ( 'struct' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9468:1: ( 'struct' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9468:1: ( 'struct' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9469:1: 'struct'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getStructKeyword_0_0()); 
            }
            match(input,62,FollowSets000.FOLLOW_62_in_rule__Constr_forward_decl__Group_0__0__Impl19381); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getStructKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_0__0__Impl"


    // $ANTLR start "rule__Constr_forward_decl__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9482:1: rule__Constr_forward_decl__Group_0__1 : rule__Constr_forward_decl__Group_0__1__Impl ;
    public final void rule__Constr_forward_decl__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9486:1: ( rule__Constr_forward_decl__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9487:2: rule__Constr_forward_decl__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__1__Impl_in_rule__Constr_forward_decl__Group_0__119412);
            rule__Constr_forward_decl__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_0__1"


    // $ANTLR start "rule__Constr_forward_decl__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9493:1: rule__Constr_forward_decl__Group_0__1__Impl : ( RULE_ID ) ;
    public final void rule__Constr_forward_decl__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9497:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9498:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9498:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9499:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_0__1__Impl19439); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_0__1__Impl"


    // $ANTLR start "rule__Constr_forward_decl__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9514:1: rule__Constr_forward_decl__Group_1__0 : rule__Constr_forward_decl__Group_1__0__Impl rule__Constr_forward_decl__Group_1__1 ;
    public final void rule__Constr_forward_decl__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9518:1: ( rule__Constr_forward_decl__Group_1__0__Impl rule__Constr_forward_decl__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9519:2: rule__Constr_forward_decl__Group_1__0__Impl rule__Constr_forward_decl__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__0__Impl_in_rule__Constr_forward_decl__Group_1__019472);
            rule__Constr_forward_decl__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__1_in_rule__Constr_forward_decl__Group_1__019475);
            rule__Constr_forward_decl__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_1__0"


    // $ANTLR start "rule__Constr_forward_decl__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9526:1: rule__Constr_forward_decl__Group_1__0__Impl : ( 'union' ) ;
    public final void rule__Constr_forward_decl__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9530:1: ( ( 'union' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9531:1: ( 'union' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9531:1: ( 'union' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9532:1: 'union'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getUnionKeyword_1_0()); 
            }
            match(input,63,FollowSets000.FOLLOW_63_in_rule__Constr_forward_decl__Group_1__0__Impl19503); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getUnionKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_1__0__Impl"


    // $ANTLR start "rule__Constr_forward_decl__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9545:1: rule__Constr_forward_decl__Group_1__1 : rule__Constr_forward_decl__Group_1__1__Impl ;
    public final void rule__Constr_forward_decl__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9549:1: ( rule__Constr_forward_decl__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9550:2: rule__Constr_forward_decl__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__1__Impl_in_rule__Constr_forward_decl__Group_1__119534);
            rule__Constr_forward_decl__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_1__1"


    // $ANTLR start "rule__Constr_forward_decl__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9556:1: rule__Constr_forward_decl__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__Constr_forward_decl__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9560:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9561:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9561:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9562:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_1_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_1__1__Impl19561); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Constr_forward_decl__Group_1__1__Impl"


    // $ANTLR start "rule__Const_decl__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9577:1: rule__Const_decl__Group__0 : rule__Const_decl__Group__0__Impl rule__Const_decl__Group__1 ;
    public final void rule__Const_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9581:1: ( rule__Const_decl__Group__0__Impl rule__Const_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9582:2: rule__Const_decl__Group__0__Impl rule__Const_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__0__Impl_in_rule__Const_decl__Group__019594);
            rule__Const_decl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__1_in_rule__Const_decl__Group__019597);
            rule__Const_decl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__0"


    // $ANTLR start "rule__Const_decl__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9589:1: rule__Const_decl__Group__0__Impl : ( 'const' ) ;
    public final void rule__Const_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9593:1: ( ( 'const' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9594:1: ( 'const' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9594:1: ( 'const' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9595:1: 'const'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getConstKeyword_0()); 
            }
            match(input,67,FollowSets000.FOLLOW_67_in_rule__Const_decl__Group__0__Impl19625); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getConstKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__0__Impl"


    // $ANTLR start "rule__Const_decl__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9608:1: rule__Const_decl__Group__1 : rule__Const_decl__Group__1__Impl rule__Const_decl__Group__2 ;
    public final void rule__Const_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9612:1: ( rule__Const_decl__Group__1__Impl rule__Const_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9613:2: rule__Const_decl__Group__1__Impl rule__Const_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__1__Impl_in_rule__Const_decl__Group__119656);
            rule__Const_decl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__2_in_rule__Const_decl__Group__119659);
            rule__Const_decl__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__1"


    // $ANTLR start "rule__Const_decl__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9620:1: rule__Const_decl__Group__1__Impl : ( ( rule__Const_decl__Alternatives_1 ) ) ;
    public final void rule__Const_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9624:1: ( ( ( rule__Const_decl__Alternatives_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9625:1: ( ( rule__Const_decl__Alternatives_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9625:1: ( ( rule__Const_decl__Alternatives_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9626:1: ( rule__Const_decl__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getAlternatives_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9627:1: ( rule__Const_decl__Alternatives_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9627:2: rule__Const_decl__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Alternatives_1_in_rule__Const_decl__Group__1__Impl19686);
            rule__Const_decl__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__1__Impl"


    // $ANTLR start "rule__Const_decl__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9637:1: rule__Const_decl__Group__2 : rule__Const_decl__Group__2__Impl rule__Const_decl__Group__3 ;
    public final void rule__Const_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9641:1: ( rule__Const_decl__Group__2__Impl rule__Const_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9642:2: rule__Const_decl__Group__2__Impl rule__Const_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__2__Impl_in_rule__Const_decl__Group__219716);
            rule__Const_decl__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__3_in_rule__Const_decl__Group__219719);
            rule__Const_decl__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__2"


    // $ANTLR start "rule__Const_decl__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9649:1: rule__Const_decl__Group__2__Impl : ( ( rule__Const_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Const_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9653:1: ( ( ( rule__Const_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9654:1: ( ( rule__Const_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9654:1: ( ( rule__Const_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9655:1: ( rule__Const_decl__IdentifierAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9656:1: ( rule__Const_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9656:2: rule__Const_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__IdentifierAssignment_2_in_rule__Const_decl__Group__2__Impl19746);
            rule__Const_decl__IdentifierAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__2__Impl"


    // $ANTLR start "rule__Const_decl__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9666:1: rule__Const_decl__Group__3 : rule__Const_decl__Group__3__Impl rule__Const_decl__Group__4 ;
    public final void rule__Const_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9670:1: ( rule__Const_decl__Group__3__Impl rule__Const_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9671:2: rule__Const_decl__Group__3__Impl rule__Const_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__3__Impl_in_rule__Const_decl__Group__319776);
            rule__Const_decl__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__4_in_rule__Const_decl__Group__319779);
            rule__Const_decl__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__3"


    // $ANTLR start "rule__Const_decl__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9678:1: rule__Const_decl__Group__3__Impl : ( '=' ) ;
    public final void rule__Const_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9682:1: ( ( '=' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9683:1: ( '=' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9683:1: ( '=' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9684:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getEqualsSignKeyword_3()); 
            }
            match(input,68,FollowSets000.FOLLOW_68_in_rule__Const_decl__Group__3__Impl19807); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getEqualsSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__3__Impl"


    // $ANTLR start "rule__Const_decl__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9697:1: rule__Const_decl__Group__4 : rule__Const_decl__Group__4__Impl ;
    public final void rule__Const_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9701:1: ( rule__Const_decl__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9702:2: rule__Const_decl__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__4__Impl_in_rule__Const_decl__Group__419838);
            rule__Const_decl__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__4"


    // $ANTLR start "rule__Const_decl__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9708:1: rule__Const_decl__Group__4__Impl : ( ( rule__Const_decl__ConstValueAssignment_4 ) ) ;
    public final void rule__Const_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9712:1: ( ( ( rule__Const_decl__ConstValueAssignment_4 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9713:1: ( ( rule__Const_decl__ConstValueAssignment_4 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9713:1: ( ( rule__Const_decl__ConstValueAssignment_4 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9714:1: ( rule__Const_decl__ConstValueAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getConstValueAssignment_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9715:1: ( rule__Const_decl__ConstValueAssignment_4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9715:2: rule__Const_decl__ConstValueAssignment_4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__ConstValueAssignment_4_in_rule__Const_decl__Group__4__Impl19865);
            rule__Const_decl__ConstValueAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getConstValueAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__Group__4__Impl"


    // $ANTLR start "rule__Sequence_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9735:1: rule__Sequence_type__Group__0 : rule__Sequence_type__Group__0__Impl rule__Sequence_type__Group__1 ;
    public final void rule__Sequence_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9739:1: ( rule__Sequence_type__Group__0__Impl rule__Sequence_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9740:2: rule__Sequence_type__Group__0__Impl rule__Sequence_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__0__Impl_in_rule__Sequence_type__Group__019905);
            rule__Sequence_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__1_in_rule__Sequence_type__Group__019908);
            rule__Sequence_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__0"


    // $ANTLR start "rule__Sequence_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9747:1: rule__Sequence_type__Group__0__Impl : ( 'sequence' ) ;
    public final void rule__Sequence_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9751:1: ( ( 'sequence' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9752:1: ( 'sequence' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9752:1: ( 'sequence' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9753:1: 'sequence'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getSequenceKeyword_0()); 
            }
            match(input,69,FollowSets000.FOLLOW_69_in_rule__Sequence_type__Group__0__Impl19936); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getSequenceKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__0__Impl"


    // $ANTLR start "rule__Sequence_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9766:1: rule__Sequence_type__Group__1 : rule__Sequence_type__Group__1__Impl rule__Sequence_type__Group__2 ;
    public final void rule__Sequence_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9770:1: ( rule__Sequence_type__Group__1__Impl rule__Sequence_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9771:2: rule__Sequence_type__Group__1__Impl rule__Sequence_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__1__Impl_in_rule__Sequence_type__Group__119967);
            rule__Sequence_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__2_in_rule__Sequence_type__Group__119970);
            rule__Sequence_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__1"


    // $ANTLR start "rule__Sequence_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9778:1: rule__Sequence_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Sequence_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9782:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9783:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9783:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9784:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,70,FollowSets000.FOLLOW_70_in_rule__Sequence_type__Group__1__Impl19998); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__1__Impl"


    // $ANTLR start "rule__Sequence_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9797:1: rule__Sequence_type__Group__2 : rule__Sequence_type__Group__2__Impl rule__Sequence_type__Group__3 ;
    public final void rule__Sequence_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9801:1: ( rule__Sequence_type__Group__2__Impl rule__Sequence_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9802:2: rule__Sequence_type__Group__2__Impl rule__Sequence_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__2__Impl_in_rule__Sequence_type__Group__220029);
            rule__Sequence_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__3_in_rule__Sequence_type__Group__220032);
            rule__Sequence_type__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__2"


    // $ANTLR start "rule__Sequence_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9809:1: rule__Sequence_type__Group__2__Impl : ( ( rule__Sequence_type__Alternatives_2 ) ) ;
    public final void rule__Sequence_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9813:1: ( ( ( rule__Sequence_type__Alternatives_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9814:1: ( ( rule__Sequence_type__Alternatives_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9814:1: ( ( rule__Sequence_type__Alternatives_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9815:1: ( rule__Sequence_type__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getAlternatives_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9816:1: ( rule__Sequence_type__Alternatives_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9816:2: rule__Sequence_type__Alternatives_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Alternatives_2_in_rule__Sequence_type__Group__2__Impl20059);
            rule__Sequence_type__Alternatives_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__2__Impl"


    // $ANTLR start "rule__Sequence_type__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9826:1: rule__Sequence_type__Group__3 : rule__Sequence_type__Group__3__Impl rule__Sequence_type__Group__4 ;
    public final void rule__Sequence_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9830:1: ( rule__Sequence_type__Group__3__Impl rule__Sequence_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9831:2: rule__Sequence_type__Group__3__Impl rule__Sequence_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__3__Impl_in_rule__Sequence_type__Group__320089);
            rule__Sequence_type__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__4_in_rule__Sequence_type__Group__320092);
            rule__Sequence_type__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__3"


    // $ANTLR start "rule__Sequence_type__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9838:1: rule__Sequence_type__Group__3__Impl : ( ( rule__Sequence_type__Group_3__0 )? ) ;
    public final void rule__Sequence_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9842:1: ( ( ( rule__Sequence_type__Group_3__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9843:1: ( ( rule__Sequence_type__Group_3__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9843:1: ( ( rule__Sequence_type__Group_3__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9844:1: ( rule__Sequence_type__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getGroup_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9845:1: ( rule__Sequence_type__Group_3__0 )?
            int alt76=2;
            int LA76_0 = input.LA(1);

            if ( (LA76_0==49) ) {
                alt76=1;
            }
            switch (alt76) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9845:2: rule__Sequence_type__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__0_in_rule__Sequence_type__Group__3__Impl20119);
                    rule__Sequence_type__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__3__Impl"


    // $ANTLR start "rule__Sequence_type__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9855:1: rule__Sequence_type__Group__4 : rule__Sequence_type__Group__4__Impl ;
    public final void rule__Sequence_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9859:1: ( rule__Sequence_type__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9860:2: rule__Sequence_type__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__4__Impl_in_rule__Sequence_type__Group__420150);
            rule__Sequence_type__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__4"


    // $ANTLR start "rule__Sequence_type__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9866:1: rule__Sequence_type__Group__4__Impl : ( '>' ) ;
    public final void rule__Sequence_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9870:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9871:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9871:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9872:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getGreaterThanSignKeyword_4()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Sequence_type__Group__4__Impl20178); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getGreaterThanSignKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group__4__Impl"


    // $ANTLR start "rule__Sequence_type__Group_3__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9895:1: rule__Sequence_type__Group_3__0 : rule__Sequence_type__Group_3__0__Impl rule__Sequence_type__Group_3__1 ;
    public final void rule__Sequence_type__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9899:1: ( rule__Sequence_type__Group_3__0__Impl rule__Sequence_type__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9900:2: rule__Sequence_type__Group_3__0__Impl rule__Sequence_type__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__0__Impl_in_rule__Sequence_type__Group_3__020219);
            rule__Sequence_type__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__1_in_rule__Sequence_type__Group_3__020222);
            rule__Sequence_type__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group_3__0"


    // $ANTLR start "rule__Sequence_type__Group_3__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9907:1: rule__Sequence_type__Group_3__0__Impl : ( ',' ) ;
    public final void rule__Sequence_type__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9911:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9912:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9912:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9913:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getCommaKeyword_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Sequence_type__Group_3__0__Impl20250); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getCommaKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group_3__0__Impl"


    // $ANTLR start "rule__Sequence_type__Group_3__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9926:1: rule__Sequence_type__Group_3__1 : rule__Sequence_type__Group_3__1__Impl ;
    public final void rule__Sequence_type__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9930:1: ( rule__Sequence_type__Group_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9931:2: rule__Sequence_type__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__1__Impl_in_rule__Sequence_type__Group_3__120281);
            rule__Sequence_type__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group_3__1"


    // $ANTLR start "rule__Sequence_type__Group_3__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9937:1: rule__Sequence_type__Group_3__1__Impl : ( ( rule__Sequence_type__BoundAssignment_3_1 ) ) ;
    public final void rule__Sequence_type__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9941:1: ( ( ( rule__Sequence_type__BoundAssignment_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9942:1: ( ( rule__Sequence_type__BoundAssignment_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9942:1: ( ( rule__Sequence_type__BoundAssignment_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9943:1: ( rule__Sequence_type__BoundAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getBoundAssignment_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9944:1: ( rule__Sequence_type__BoundAssignment_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9944:2: rule__Sequence_type__BoundAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__BoundAssignment_3_1_in_rule__Sequence_type__Group_3__1__Impl20308);
            rule__Sequence_type__BoundAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getBoundAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__Group_3__1__Impl"


    // $ANTLR start "rule__Stringdef_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9958:1: rule__Stringdef_type__Group__0 : rule__Stringdef_type__Group__0__Impl rule__Stringdef_type__Group__1 ;
    public final void rule__Stringdef_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9962:1: ( rule__Stringdef_type__Group__0__Impl rule__Stringdef_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9963:2: rule__Stringdef_type__Group__0__Impl rule__Stringdef_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__0__Impl_in_rule__Stringdef_type__Group__020342);
            rule__Stringdef_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__1_in_rule__Stringdef_type__Group__020345);
            rule__Stringdef_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__0"


    // $ANTLR start "rule__Stringdef_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9970:1: rule__Stringdef_type__Group__0__Impl : ( 'string' ) ;
    public final void rule__Stringdef_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9974:1: ( ( 'string' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9975:1: ( 'string' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9975:1: ( 'string' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9976:1: 'string'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getStringKeyword_0()); 
            }
            match(input,22,FollowSets000.FOLLOW_22_in_rule__Stringdef_type__Group__0__Impl20373); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getStringKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__0__Impl"


    // $ANTLR start "rule__Stringdef_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9989:1: rule__Stringdef_type__Group__1 : rule__Stringdef_type__Group__1__Impl rule__Stringdef_type__Group__2 ;
    public final void rule__Stringdef_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9993:1: ( rule__Stringdef_type__Group__1__Impl rule__Stringdef_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9994:2: rule__Stringdef_type__Group__1__Impl rule__Stringdef_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__1__Impl_in_rule__Stringdef_type__Group__120404);
            rule__Stringdef_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__2_in_rule__Stringdef_type__Group__120407);
            rule__Stringdef_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__1"


    // $ANTLR start "rule__Stringdef_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10001:1: rule__Stringdef_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Stringdef_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10005:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10006:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10006:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10007:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,70,FollowSets000.FOLLOW_70_in_rule__Stringdef_type__Group__1__Impl20435); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__1__Impl"


    // $ANTLR start "rule__Stringdef_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10020:1: rule__Stringdef_type__Group__2 : rule__Stringdef_type__Group__2__Impl rule__Stringdef_type__Group__3 ;
    public final void rule__Stringdef_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10024:1: ( rule__Stringdef_type__Group__2__Impl rule__Stringdef_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10025:2: rule__Stringdef_type__Group__2__Impl rule__Stringdef_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__2__Impl_in_rule__Stringdef_type__Group__220466);
            rule__Stringdef_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__3_in_rule__Stringdef_type__Group__220469);
            rule__Stringdef_type__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__2"


    // $ANTLR start "rule__Stringdef_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10032:1: rule__Stringdef_type__Group__2__Impl : ( ( rule__Stringdef_type__BoundAssignment_2 ) ) ;
    public final void rule__Stringdef_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10036:1: ( ( ( rule__Stringdef_type__BoundAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10037:1: ( ( rule__Stringdef_type__BoundAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10037:1: ( ( rule__Stringdef_type__BoundAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10038:1: ( rule__Stringdef_type__BoundAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getBoundAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10039:1: ( rule__Stringdef_type__BoundAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10039:2: rule__Stringdef_type__BoundAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__BoundAssignment_2_in_rule__Stringdef_type__Group__2__Impl20496);
            rule__Stringdef_type__BoundAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getBoundAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__2__Impl"


    // $ANTLR start "rule__Stringdef_type__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10049:1: rule__Stringdef_type__Group__3 : rule__Stringdef_type__Group__3__Impl ;
    public final void rule__Stringdef_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10053:1: ( rule__Stringdef_type__Group__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10054:2: rule__Stringdef_type__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__3__Impl_in_rule__Stringdef_type__Group__320526);
            rule__Stringdef_type__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__3"


    // $ANTLR start "rule__Stringdef_type__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10060:1: rule__Stringdef_type__Group__3__Impl : ( '>' ) ;
    public final void rule__Stringdef_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10064:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10065:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10065:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10066:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Stringdef_type__Group__3__Impl20554); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__Group__3__Impl"


    // $ANTLR start "rule__Wide_stringdef_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10087:1: rule__Wide_stringdef_type__Group__0 : rule__Wide_stringdef_type__Group__0__Impl rule__Wide_stringdef_type__Group__1 ;
    public final void rule__Wide_stringdef_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10091:1: ( rule__Wide_stringdef_type__Group__0__Impl rule__Wide_stringdef_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10092:2: rule__Wide_stringdef_type__Group__0__Impl rule__Wide_stringdef_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__0__Impl_in_rule__Wide_stringdef_type__Group__020593);
            rule__Wide_stringdef_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__1_in_rule__Wide_stringdef_type__Group__020596);
            rule__Wide_stringdef_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__0"


    // $ANTLR start "rule__Wide_stringdef_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10099:1: rule__Wide_stringdef_type__Group__0__Impl : ( 'wstring' ) ;
    public final void rule__Wide_stringdef_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10103:1: ( ( 'wstring' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10104:1: ( 'wstring' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10104:1: ( 'wstring' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10105:1: 'wstring'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getWstringKeyword_0()); 
            }
            match(input,23,FollowSets000.FOLLOW_23_in_rule__Wide_stringdef_type__Group__0__Impl20624); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getWstringKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__0__Impl"


    // $ANTLR start "rule__Wide_stringdef_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10118:1: rule__Wide_stringdef_type__Group__1 : rule__Wide_stringdef_type__Group__1__Impl rule__Wide_stringdef_type__Group__2 ;
    public final void rule__Wide_stringdef_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10122:1: ( rule__Wide_stringdef_type__Group__1__Impl rule__Wide_stringdef_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10123:2: rule__Wide_stringdef_type__Group__1__Impl rule__Wide_stringdef_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__1__Impl_in_rule__Wide_stringdef_type__Group__120655);
            rule__Wide_stringdef_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__2_in_rule__Wide_stringdef_type__Group__120658);
            rule__Wide_stringdef_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__1"


    // $ANTLR start "rule__Wide_stringdef_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10130:1: rule__Wide_stringdef_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Wide_stringdef_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10134:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10135:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10135:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10136:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,70,FollowSets000.FOLLOW_70_in_rule__Wide_stringdef_type__Group__1__Impl20686); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__1__Impl"


    // $ANTLR start "rule__Wide_stringdef_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10149:1: rule__Wide_stringdef_type__Group__2 : rule__Wide_stringdef_type__Group__2__Impl rule__Wide_stringdef_type__Group__3 ;
    public final void rule__Wide_stringdef_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10153:1: ( rule__Wide_stringdef_type__Group__2__Impl rule__Wide_stringdef_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10154:2: rule__Wide_stringdef_type__Group__2__Impl rule__Wide_stringdef_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__2__Impl_in_rule__Wide_stringdef_type__Group__220717);
            rule__Wide_stringdef_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__3_in_rule__Wide_stringdef_type__Group__220720);
            rule__Wide_stringdef_type__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__2"


    // $ANTLR start "rule__Wide_stringdef_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10161:1: rule__Wide_stringdef_type__Group__2__Impl : ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) ) ;
    public final void rule__Wide_stringdef_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10165:1: ( ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10166:1: ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10166:1: ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10167:1: ( rule__Wide_stringdef_type__BoundAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getBoundAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10168:1: ( rule__Wide_stringdef_type__BoundAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10168:2: rule__Wide_stringdef_type__BoundAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__BoundAssignment_2_in_rule__Wide_stringdef_type__Group__2__Impl20747);
            rule__Wide_stringdef_type__BoundAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getBoundAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__2__Impl"


    // $ANTLR start "rule__Wide_stringdef_type__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10178:1: rule__Wide_stringdef_type__Group__3 : rule__Wide_stringdef_type__Group__3__Impl ;
    public final void rule__Wide_stringdef_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10182:1: ( rule__Wide_stringdef_type__Group__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10183:2: rule__Wide_stringdef_type__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__3__Impl_in_rule__Wide_stringdef_type__Group__320777);
            rule__Wide_stringdef_type__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__3"


    // $ANTLR start "rule__Wide_stringdef_type__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10189:1: rule__Wide_stringdef_type__Group__3__Impl : ( '>' ) ;
    public final void rule__Wide_stringdef_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10193:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10194:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10194:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10195:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Wide_stringdef_type__Group__3__Impl20805); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__Group__3__Impl"


    // $ANTLR start "rule__Fixed_pt_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10216:1: rule__Fixed_pt_type__Group__0 : rule__Fixed_pt_type__Group__0__Impl rule__Fixed_pt_type__Group__1 ;
    public final void rule__Fixed_pt_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10220:1: ( rule__Fixed_pt_type__Group__0__Impl rule__Fixed_pt_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10221:2: rule__Fixed_pt_type__Group__0__Impl rule__Fixed_pt_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__0__Impl_in_rule__Fixed_pt_type__Group__020844);
            rule__Fixed_pt_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__1_in_rule__Fixed_pt_type__Group__020847);
            rule__Fixed_pt_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__0"


    // $ANTLR start "rule__Fixed_pt_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10228:1: rule__Fixed_pt_type__Group__0__Impl : ( 'fixed' ) ;
    public final void rule__Fixed_pt_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10232:1: ( ( 'fixed' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10233:1: ( 'fixed' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10233:1: ( 'fixed' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10234:1: 'fixed'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getFixedKeyword_0()); 
            }
            match(input,72,FollowSets000.FOLLOW_72_in_rule__Fixed_pt_type__Group__0__Impl20875); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getFixedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__0__Impl"


    // $ANTLR start "rule__Fixed_pt_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10247:1: rule__Fixed_pt_type__Group__1 : rule__Fixed_pt_type__Group__1__Impl rule__Fixed_pt_type__Group__2 ;
    public final void rule__Fixed_pt_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10251:1: ( rule__Fixed_pt_type__Group__1__Impl rule__Fixed_pt_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10252:2: rule__Fixed_pt_type__Group__1__Impl rule__Fixed_pt_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__1__Impl_in_rule__Fixed_pt_type__Group__120906);
            rule__Fixed_pt_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__2_in_rule__Fixed_pt_type__Group__120909);
            rule__Fixed_pt_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__1"


    // $ANTLR start "rule__Fixed_pt_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10259:1: rule__Fixed_pt_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Fixed_pt_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10263:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10264:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10264:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10265:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,70,FollowSets000.FOLLOW_70_in_rule__Fixed_pt_type__Group__1__Impl20937); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__1__Impl"


    // $ANTLR start "rule__Fixed_pt_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10278:1: rule__Fixed_pt_type__Group__2 : rule__Fixed_pt_type__Group__2__Impl rule__Fixed_pt_type__Group__3 ;
    public final void rule__Fixed_pt_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10282:1: ( rule__Fixed_pt_type__Group__2__Impl rule__Fixed_pt_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10283:2: rule__Fixed_pt_type__Group__2__Impl rule__Fixed_pt_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__2__Impl_in_rule__Fixed_pt_type__Group__220968);
            rule__Fixed_pt_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__3_in_rule__Fixed_pt_type__Group__220971);
            rule__Fixed_pt_type__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__2"


    // $ANTLR start "rule__Fixed_pt_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10290:1: rule__Fixed_pt_type__Group__2__Impl : ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) ) ;
    public final void rule__Fixed_pt_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10294:1: ( ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10295:1: ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10295:1: ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10296:1: ( rule__Fixed_pt_type__DigitsAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getDigitsAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10297:1: ( rule__Fixed_pt_type__DigitsAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10297:2: rule__Fixed_pt_type__DigitsAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__DigitsAssignment_2_in_rule__Fixed_pt_type__Group__2__Impl20998);
            rule__Fixed_pt_type__DigitsAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getDigitsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__2__Impl"


    // $ANTLR start "rule__Fixed_pt_type__Group__3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10307:1: rule__Fixed_pt_type__Group__3 : rule__Fixed_pt_type__Group__3__Impl rule__Fixed_pt_type__Group__4 ;
    public final void rule__Fixed_pt_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10311:1: ( rule__Fixed_pt_type__Group__3__Impl rule__Fixed_pt_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10312:2: rule__Fixed_pt_type__Group__3__Impl rule__Fixed_pt_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__3__Impl_in_rule__Fixed_pt_type__Group__321028);
            rule__Fixed_pt_type__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__4_in_rule__Fixed_pt_type__Group__321031);
            rule__Fixed_pt_type__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__3"


    // $ANTLR start "rule__Fixed_pt_type__Group__3__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10319:1: rule__Fixed_pt_type__Group__3__Impl : ( ',' ) ;
    public final void rule__Fixed_pt_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10323:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10324:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10324:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10325:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getCommaKeyword_3()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Fixed_pt_type__Group__3__Impl21059); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getCommaKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__3__Impl"


    // $ANTLR start "rule__Fixed_pt_type__Group__4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10338:1: rule__Fixed_pt_type__Group__4 : rule__Fixed_pt_type__Group__4__Impl rule__Fixed_pt_type__Group__5 ;
    public final void rule__Fixed_pt_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10342:1: ( rule__Fixed_pt_type__Group__4__Impl rule__Fixed_pt_type__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10343:2: rule__Fixed_pt_type__Group__4__Impl rule__Fixed_pt_type__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__4__Impl_in_rule__Fixed_pt_type__Group__421090);
            rule__Fixed_pt_type__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__5_in_rule__Fixed_pt_type__Group__421093);
            rule__Fixed_pt_type__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__4"


    // $ANTLR start "rule__Fixed_pt_type__Group__4__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10350:1: rule__Fixed_pt_type__Group__4__Impl : ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) ) ;
    public final void rule__Fixed_pt_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10354:1: ( ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10355:1: ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10355:1: ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10356:1: ( rule__Fixed_pt_type__ScaleAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getScaleAssignment_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10357:1: ( rule__Fixed_pt_type__ScaleAssignment_4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10357:2: rule__Fixed_pt_type__ScaleAssignment_4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__ScaleAssignment_4_in_rule__Fixed_pt_type__Group__4__Impl21120);
            rule__Fixed_pt_type__ScaleAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getScaleAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__4__Impl"


    // $ANTLR start "rule__Fixed_pt_type__Group__5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10367:1: rule__Fixed_pt_type__Group__5 : rule__Fixed_pt_type__Group__5__Impl ;
    public final void rule__Fixed_pt_type__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10371:1: ( rule__Fixed_pt_type__Group__5__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10372:2: rule__Fixed_pt_type__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__5__Impl_in_rule__Fixed_pt_type__Group__521150);
            rule__Fixed_pt_type__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__5"


    // $ANTLR start "rule__Fixed_pt_type__Group__5__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10378:1: rule__Fixed_pt_type__Group__5__Impl : ( '>' ) ;
    public final void rule__Fixed_pt_type__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10382:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10383:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10383:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10384:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getGreaterThanSignKeyword_5()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Fixed_pt_type__Group__5__Impl21178); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getGreaterThanSignKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__Group__5__Impl"


    // $ANTLR start "rule__Longdouble_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10409:1: rule__Longdouble_type__Group__0 : rule__Longdouble_type__Group__0__Impl rule__Longdouble_type__Group__1 ;
    public final void rule__Longdouble_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10413:1: ( rule__Longdouble_type__Group__0__Impl rule__Longdouble_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10414:2: rule__Longdouble_type__Group__0__Impl rule__Longdouble_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__0__Impl_in_rule__Longdouble_type__Group__021221);
            rule__Longdouble_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__1_in_rule__Longdouble_type__Group__021224);
            rule__Longdouble_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longdouble_type__Group__0"


    // $ANTLR start "rule__Longdouble_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10421:1: rule__Longdouble_type__Group__0__Impl : ( 'long' ) ;
    public final void rule__Longdouble_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10425:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10426:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10426:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10427:1: 'long'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeAccess().getLongKeyword_0()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Longdouble_type__Group__0__Impl21252); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeAccess().getLongKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longdouble_type__Group__0__Impl"


    // $ANTLR start "rule__Longdouble_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10440:1: rule__Longdouble_type__Group__1 : rule__Longdouble_type__Group__1__Impl ;
    public final void rule__Longdouble_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10444:1: ( rule__Longdouble_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10445:2: rule__Longdouble_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__1__Impl_in_rule__Longdouble_type__Group__121283);
            rule__Longdouble_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longdouble_type__Group__1"


    // $ANTLR start "rule__Longdouble_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10451:1: rule__Longdouble_type__Group__1__Impl : ( 'double' ) ;
    public final void rule__Longdouble_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10455:1: ( ( 'double' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10456:1: ( 'double' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10456:1: ( 'double' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10457:1: 'double'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeAccess().getDoubleKeyword_1()); 
            }
            match(input,17,FollowSets000.FOLLOW_17_in_rule__Longdouble_type__Group__1__Impl21311); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeAccess().getDoubleKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longdouble_type__Group__1__Impl"


    // $ANTLR start "rule__Longlong_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10474:1: rule__Longlong_type__Group__0 : rule__Longlong_type__Group__0__Impl rule__Longlong_type__Group__1 ;
    public final void rule__Longlong_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10478:1: ( rule__Longlong_type__Group__0__Impl rule__Longlong_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10479:2: rule__Longlong_type__Group__0__Impl rule__Longlong_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__0__Impl_in_rule__Longlong_type__Group__021346);
            rule__Longlong_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__1_in_rule__Longlong_type__Group__021349);
            rule__Longlong_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longlong_type__Group__0"


    // $ANTLR start "rule__Longlong_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10486:1: rule__Longlong_type__Group__0__Impl : ( 'long' ) ;
    public final void rule__Longlong_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10490:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10491:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10491:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10492:1: 'long'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLonglong_typeAccess().getLongKeyword_0()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Longlong_type__Group__0__Impl21377); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLonglong_typeAccess().getLongKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longlong_type__Group__0__Impl"


    // $ANTLR start "rule__Longlong_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10505:1: rule__Longlong_type__Group__1 : rule__Longlong_type__Group__1__Impl ;
    public final void rule__Longlong_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10509:1: ( rule__Longlong_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10510:2: rule__Longlong_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__1__Impl_in_rule__Longlong_type__Group__121408);
            rule__Longlong_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longlong_type__Group__1"


    // $ANTLR start "rule__Longlong_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10516:1: rule__Longlong_type__Group__1__Impl : ( 'long' ) ;
    public final void rule__Longlong_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10520:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10521:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10521:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10522:1: 'long'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLonglong_typeAccess().getLongKeyword_1()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Longlong_type__Group__1__Impl21436); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLonglong_typeAccess().getLongKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Longlong_type__Group__1__Impl"


    // $ANTLR start "rule__Ushort_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10539:1: rule__Ushort_type__Group__0 : rule__Ushort_type__Group__0__Impl rule__Ushort_type__Group__1 ;
    public final void rule__Ushort_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10543:1: ( rule__Ushort_type__Group__0__Impl rule__Ushort_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10544:2: rule__Ushort_type__Group__0__Impl rule__Ushort_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__0__Impl_in_rule__Ushort_type__Group__021471);
            rule__Ushort_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__1_in_rule__Ushort_type__Group__021474);
            rule__Ushort_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ushort_type__Group__0"


    // $ANTLR start "rule__Ushort_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10551:1: rule__Ushort_type__Group__0__Impl : ( 'unsigned' ) ;
    public final void rule__Ushort_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10555:1: ( ( 'unsigned' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10556:1: ( 'unsigned' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10556:1: ( 'unsigned' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10557:1: 'unsigned'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUshort_typeAccess().getUnsignedKeyword_0()); 
            }
            match(input,73,FollowSets000.FOLLOW_73_in_rule__Ushort_type__Group__0__Impl21502); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUshort_typeAccess().getUnsignedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ushort_type__Group__0__Impl"


    // $ANTLR start "rule__Ushort_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10570:1: rule__Ushort_type__Group__1 : rule__Ushort_type__Group__1__Impl ;
    public final void rule__Ushort_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10574:1: ( rule__Ushort_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10575:2: rule__Ushort_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__1__Impl_in_rule__Ushort_type__Group__121533);
            rule__Ushort_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ushort_type__Group__1"


    // $ANTLR start "rule__Ushort_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10581:1: rule__Ushort_type__Group__1__Impl : ( 'short' ) ;
    public final void rule__Ushort_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10585:1: ( ( 'short' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10586:1: ( 'short' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10586:1: ( 'short' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10587:1: 'short'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUshort_typeAccess().getShortKeyword_1()); 
            }
            match(input,18,FollowSets000.FOLLOW_18_in_rule__Ushort_type__Group__1__Impl21561); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUshort_typeAccess().getShortKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ushort_type__Group__1__Impl"


    // $ANTLR start "rule__Ulong_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10604:1: rule__Ulong_type__Group__0 : rule__Ulong_type__Group__0__Impl rule__Ulong_type__Group__1 ;
    public final void rule__Ulong_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10608:1: ( rule__Ulong_type__Group__0__Impl rule__Ulong_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10609:2: rule__Ulong_type__Group__0__Impl rule__Ulong_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__0__Impl_in_rule__Ulong_type__Group__021596);
            rule__Ulong_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__1_in_rule__Ulong_type__Group__021599);
            rule__Ulong_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulong_type__Group__0"


    // $ANTLR start "rule__Ulong_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10616:1: rule__Ulong_type__Group__0__Impl : ( 'unsigned' ) ;
    public final void rule__Ulong_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10620:1: ( ( 'unsigned' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10621:1: ( 'unsigned' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10621:1: ( 'unsigned' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10622:1: 'unsigned'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlong_typeAccess().getUnsignedKeyword_0()); 
            }
            match(input,73,FollowSets000.FOLLOW_73_in_rule__Ulong_type__Group__0__Impl21627); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlong_typeAccess().getUnsignedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulong_type__Group__0__Impl"


    // $ANTLR start "rule__Ulong_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10635:1: rule__Ulong_type__Group__1 : rule__Ulong_type__Group__1__Impl ;
    public final void rule__Ulong_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10639:1: ( rule__Ulong_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10640:2: rule__Ulong_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__1__Impl_in_rule__Ulong_type__Group__121658);
            rule__Ulong_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulong_type__Group__1"


    // $ANTLR start "rule__Ulong_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10646:1: rule__Ulong_type__Group__1__Impl : ( 'long' ) ;
    public final void rule__Ulong_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10650:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10651:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10651:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10652:1: 'long'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlong_typeAccess().getLongKeyword_1()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Ulong_type__Group__1__Impl21686); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlong_typeAccess().getLongKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulong_type__Group__1__Impl"


    // $ANTLR start "rule__Ulonglong_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10669:1: rule__Ulonglong_type__Group__0 : rule__Ulonglong_type__Group__0__Impl rule__Ulonglong_type__Group__1 ;
    public final void rule__Ulonglong_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10673:1: ( rule__Ulonglong_type__Group__0__Impl rule__Ulonglong_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10674:2: rule__Ulonglong_type__Group__0__Impl rule__Ulonglong_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__0__Impl_in_rule__Ulonglong_type__Group__021721);
            rule__Ulonglong_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__1_in_rule__Ulonglong_type__Group__021724);
            rule__Ulonglong_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulonglong_type__Group__0"


    // $ANTLR start "rule__Ulonglong_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10681:1: rule__Ulonglong_type__Group__0__Impl : ( 'unsigned' ) ;
    public final void rule__Ulonglong_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10685:1: ( ( 'unsigned' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10686:1: ( 'unsigned' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10686:1: ( 'unsigned' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10687:1: 'unsigned'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getUnsignedKeyword_0()); 
            }
            match(input,73,FollowSets000.FOLLOW_73_in_rule__Ulonglong_type__Group__0__Impl21752); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getUnsignedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulonglong_type__Group__0__Impl"


    // $ANTLR start "rule__Ulonglong_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10700:1: rule__Ulonglong_type__Group__1 : rule__Ulonglong_type__Group__1__Impl rule__Ulonglong_type__Group__2 ;
    public final void rule__Ulonglong_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10704:1: ( rule__Ulonglong_type__Group__1__Impl rule__Ulonglong_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10705:2: rule__Ulonglong_type__Group__1__Impl rule__Ulonglong_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__1__Impl_in_rule__Ulonglong_type__Group__121783);
            rule__Ulonglong_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__2_in_rule__Ulonglong_type__Group__121786);
            rule__Ulonglong_type__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulonglong_type__Group__1"


    // $ANTLR start "rule__Ulonglong_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10712:1: rule__Ulonglong_type__Group__1__Impl : ( 'long' ) ;
    public final void rule__Ulonglong_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10716:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10717:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10717:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10718:1: 'long'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getLongKeyword_1()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Ulonglong_type__Group__1__Impl21814); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getLongKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulonglong_type__Group__1__Impl"


    // $ANTLR start "rule__Ulonglong_type__Group__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10731:1: rule__Ulonglong_type__Group__2 : rule__Ulonglong_type__Group__2__Impl ;
    public final void rule__Ulonglong_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10735:1: ( rule__Ulonglong_type__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10736:2: rule__Ulonglong_type__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__2__Impl_in_rule__Ulonglong_type__Group__221845);
            rule__Ulonglong_type__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulonglong_type__Group__2"


    // $ANTLR start "rule__Ulonglong_type__Group__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10742:1: rule__Ulonglong_type__Group__2__Impl : ( 'long' ) ;
    public final void rule__Ulonglong_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10746:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10747:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10747:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10748:1: 'long'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getLongKeyword_2()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Ulonglong_type__Group__2__Impl21873); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getLongKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Ulonglong_type__Group__2__Impl"


    // $ANTLR start "rule__Fixed_pt_const_type__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10767:1: rule__Fixed_pt_const_type__Group__0 : rule__Fixed_pt_const_type__Group__0__Impl rule__Fixed_pt_const_type__Group__1 ;
    public final void rule__Fixed_pt_const_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10771:1: ( rule__Fixed_pt_const_type__Group__0__Impl rule__Fixed_pt_const_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10772:2: rule__Fixed_pt_const_type__Group__0__Impl rule__Fixed_pt_const_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__0__Impl_in_rule__Fixed_pt_const_type__Group__021910);
            rule__Fixed_pt_const_type__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__1_in_rule__Fixed_pt_const_type__Group__021913);
            rule__Fixed_pt_const_type__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_const_type__Group__0"


    // $ANTLR start "rule__Fixed_pt_const_type__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10779:1: rule__Fixed_pt_const_type__Group__0__Impl : ( () ) ;
    public final void rule__Fixed_pt_const_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10783:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10784:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10784:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10785:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeAccess().getFixedDefAction_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10786:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10788:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeAccess().getFixedDefAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_const_type__Group__0__Impl"


    // $ANTLR start "rule__Fixed_pt_const_type__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10798:1: rule__Fixed_pt_const_type__Group__1 : rule__Fixed_pt_const_type__Group__1__Impl ;
    public final void rule__Fixed_pt_const_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10802:1: ( rule__Fixed_pt_const_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10803:2: rule__Fixed_pt_const_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__1__Impl_in_rule__Fixed_pt_const_type__Group__121971);
            rule__Fixed_pt_const_type__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_const_type__Group__1"


    // $ANTLR start "rule__Fixed_pt_const_type__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10809:1: rule__Fixed_pt_const_type__Group__1__Impl : ( 'fixed' ) ;
    public final void rule__Fixed_pt_const_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10813:1: ( ( 'fixed' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10814:1: ( 'fixed' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10814:1: ( 'fixed' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10815:1: 'fixed'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeAccess().getFixedKeyword_1()); 
            }
            match(input,72,FollowSets000.FOLLOW_72_in_rule__Fixed_pt_const_type__Group__1__Impl21999); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeAccess().getFixedKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_const_type__Group__1__Impl"


    // $ANTLR start "rule__Or_expr__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10832:1: rule__Or_expr__Group__0 : rule__Or_expr__Group__0__Impl rule__Or_expr__Group__1 ;
    public final void rule__Or_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10836:1: ( rule__Or_expr__Group__0__Impl rule__Or_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10837:2: rule__Or_expr__Group__0__Impl rule__Or_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__0__Impl_in_rule__Or_expr__Group__022034);
            rule__Or_expr__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__1_in_rule__Or_expr__Group__022037);
            rule__Or_expr__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group__0"


    // $ANTLR start "rule__Or_expr__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10844:1: rule__Or_expr__Group__0__Impl : ( rulexor_expr ) ;
    public final void rule__Or_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10848:1: ( ( rulexor_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10849:1: ( rulexor_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10849:1: ( rulexor_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10850:1: rulexor_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getXor_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulexor_expr_in_rule__Or_expr__Group__0__Impl22064);
            rulexor_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getXor_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group__0__Impl"


    // $ANTLR start "rule__Or_expr__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10861:1: rule__Or_expr__Group__1 : rule__Or_expr__Group__1__Impl ;
    public final void rule__Or_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10865:1: ( rule__Or_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10866:2: rule__Or_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__1__Impl_in_rule__Or_expr__Group__122093);
            rule__Or_expr__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group__1"


    // $ANTLR start "rule__Or_expr__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10872:1: rule__Or_expr__Group__1__Impl : ( ( rule__Or_expr__Group_1__0 )* ) ;
    public final void rule__Or_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10876:1: ( ( ( rule__Or_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10877:1: ( ( rule__Or_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10877:1: ( ( rule__Or_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10878:1: ( rule__Or_expr__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10879:1: ( rule__Or_expr__Group_1__0 )*
            loop77:
            do {
                int alt77=2;
                int LA77_0 = input.LA(1);

                if ( (LA77_0==77) ) {
                    alt77=1;
                }


                switch (alt77) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10879:2: rule__Or_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__0_in_rule__Or_expr__Group__1__Impl22120);
            	    rule__Or_expr__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop77;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group__1__Impl"


    // $ANTLR start "rule__Or_expr__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10893:1: rule__Or_expr__Group_1__0 : rule__Or_expr__Group_1__0__Impl rule__Or_expr__Group_1__1 ;
    public final void rule__Or_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10897:1: ( rule__Or_expr__Group_1__0__Impl rule__Or_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10898:2: rule__Or_expr__Group_1__0__Impl rule__Or_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__0__Impl_in_rule__Or_expr__Group_1__022155);
            rule__Or_expr__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__1_in_rule__Or_expr__Group_1__022158);
            rule__Or_expr__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group_1__0"


    // $ANTLR start "rule__Or_expr__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10905:1: rule__Or_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Or_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10909:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10910:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10910:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10911:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10912:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10914:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group_1__0__Impl"


    // $ANTLR start "rule__Or_expr__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10924:1: rule__Or_expr__Group_1__1 : rule__Or_expr__Group_1__1__Impl rule__Or_expr__Group_1__2 ;
    public final void rule__Or_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10928:1: ( rule__Or_expr__Group_1__1__Impl rule__Or_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10929:2: rule__Or_expr__Group_1__1__Impl rule__Or_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__1__Impl_in_rule__Or_expr__Group_1__122216);
            rule__Or_expr__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__2_in_rule__Or_expr__Group_1__122219);
            rule__Or_expr__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group_1__1"


    // $ANTLR start "rule__Or_expr__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10936:1: rule__Or_expr__Group_1__1__Impl : ( ( rule__Or_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Or_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10940:1: ( ( ( rule__Or_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10941:1: ( ( rule__Or_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10941:1: ( ( rule__Or_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10942:1: ( rule__Or_expr__OperatorAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10943:1: ( rule__Or_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10943:2: rule__Or_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__OperatorAssignment_1_1_in_rule__Or_expr__Group_1__1__Impl22246);
            rule__Or_expr__OperatorAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group_1__1__Impl"


    // $ANTLR start "rule__Or_expr__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10953:1: rule__Or_expr__Group_1__2 : rule__Or_expr__Group_1__2__Impl ;
    public final void rule__Or_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10957:1: ( rule__Or_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10958:2: rule__Or_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__2__Impl_in_rule__Or_expr__Group_1__222276);
            rule__Or_expr__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group_1__2"


    // $ANTLR start "rule__Or_expr__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10964:1: rule__Or_expr__Group_1__2__Impl : ( ( rule__Or_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Or_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10968:1: ( ( ( rule__Or_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10969:1: ( ( rule__Or_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10969:1: ( ( rule__Or_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10970:1: ( rule__Or_expr__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10971:1: ( rule__Or_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10971:2: rule__Or_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__RightAssignment_1_2_in_rule__Or_expr__Group_1__2__Impl22303);
            rule__Or_expr__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__Group_1__2__Impl"


    // $ANTLR start "rule__Xor_expr__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10987:1: rule__Xor_expr__Group__0 : rule__Xor_expr__Group__0__Impl rule__Xor_expr__Group__1 ;
    public final void rule__Xor_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10991:1: ( rule__Xor_expr__Group__0__Impl rule__Xor_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10992:2: rule__Xor_expr__Group__0__Impl rule__Xor_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__0__Impl_in_rule__Xor_expr__Group__022339);
            rule__Xor_expr__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__1_in_rule__Xor_expr__Group__022342);
            rule__Xor_expr__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group__0"


    // $ANTLR start "rule__Xor_expr__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10999:1: rule__Xor_expr__Group__0__Impl : ( ruleand_expr ) ;
    public final void rule__Xor_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11003:1: ( ( ruleand_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11004:1: ( ruleand_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11004:1: ( ruleand_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11005:1: ruleand_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getAnd_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleand_expr_in_rule__Xor_expr__Group__0__Impl22369);
            ruleand_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getAnd_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group__0__Impl"


    // $ANTLR start "rule__Xor_expr__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11016:1: rule__Xor_expr__Group__1 : rule__Xor_expr__Group__1__Impl ;
    public final void rule__Xor_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11020:1: ( rule__Xor_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11021:2: rule__Xor_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__1__Impl_in_rule__Xor_expr__Group__122398);
            rule__Xor_expr__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group__1"


    // $ANTLR start "rule__Xor_expr__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11027:1: rule__Xor_expr__Group__1__Impl : ( ( rule__Xor_expr__Group_1__0 )* ) ;
    public final void rule__Xor_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11031:1: ( ( ( rule__Xor_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11032:1: ( ( rule__Xor_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11032:1: ( ( rule__Xor_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11033:1: ( rule__Xor_expr__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11034:1: ( rule__Xor_expr__Group_1__0 )*
            loop78:
            do {
                int alt78=2;
                int LA78_0 = input.LA(1);

                if ( (LA78_0==78) ) {
                    alt78=1;
                }


                switch (alt78) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11034:2: rule__Xor_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__0_in_rule__Xor_expr__Group__1__Impl22425);
            	    rule__Xor_expr__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop78;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group__1__Impl"


    // $ANTLR start "rule__Xor_expr__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11048:1: rule__Xor_expr__Group_1__0 : rule__Xor_expr__Group_1__0__Impl rule__Xor_expr__Group_1__1 ;
    public final void rule__Xor_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11052:1: ( rule__Xor_expr__Group_1__0__Impl rule__Xor_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11053:2: rule__Xor_expr__Group_1__0__Impl rule__Xor_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__0__Impl_in_rule__Xor_expr__Group_1__022460);
            rule__Xor_expr__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__1_in_rule__Xor_expr__Group_1__022463);
            rule__Xor_expr__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group_1__0"


    // $ANTLR start "rule__Xor_expr__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11060:1: rule__Xor_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Xor_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11064:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11065:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11065:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11066:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11067:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11069:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group_1__0__Impl"


    // $ANTLR start "rule__Xor_expr__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11079:1: rule__Xor_expr__Group_1__1 : rule__Xor_expr__Group_1__1__Impl rule__Xor_expr__Group_1__2 ;
    public final void rule__Xor_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11083:1: ( rule__Xor_expr__Group_1__1__Impl rule__Xor_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11084:2: rule__Xor_expr__Group_1__1__Impl rule__Xor_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__1__Impl_in_rule__Xor_expr__Group_1__122521);
            rule__Xor_expr__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__2_in_rule__Xor_expr__Group_1__122524);
            rule__Xor_expr__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group_1__1"


    // $ANTLR start "rule__Xor_expr__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11091:1: rule__Xor_expr__Group_1__1__Impl : ( ( rule__Xor_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Xor_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11095:1: ( ( ( rule__Xor_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11096:1: ( ( rule__Xor_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11096:1: ( ( rule__Xor_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11097:1: ( rule__Xor_expr__OperatorAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11098:1: ( rule__Xor_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11098:2: rule__Xor_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__OperatorAssignment_1_1_in_rule__Xor_expr__Group_1__1__Impl22551);
            rule__Xor_expr__OperatorAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group_1__1__Impl"


    // $ANTLR start "rule__Xor_expr__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11108:1: rule__Xor_expr__Group_1__2 : rule__Xor_expr__Group_1__2__Impl ;
    public final void rule__Xor_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11112:1: ( rule__Xor_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11113:2: rule__Xor_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__2__Impl_in_rule__Xor_expr__Group_1__222581);
            rule__Xor_expr__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group_1__2"


    // $ANTLR start "rule__Xor_expr__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11119:1: rule__Xor_expr__Group_1__2__Impl : ( ( rule__Xor_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Xor_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11123:1: ( ( ( rule__Xor_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11124:1: ( ( rule__Xor_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11124:1: ( ( rule__Xor_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11125:1: ( rule__Xor_expr__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11126:1: ( rule__Xor_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11126:2: rule__Xor_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__RightAssignment_1_2_in_rule__Xor_expr__Group_1__2__Impl22608);
            rule__Xor_expr__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__Group_1__2__Impl"


    // $ANTLR start "rule__And_expr__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11142:1: rule__And_expr__Group__0 : rule__And_expr__Group__0__Impl rule__And_expr__Group__1 ;
    public final void rule__And_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11146:1: ( rule__And_expr__Group__0__Impl rule__And_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11147:2: rule__And_expr__Group__0__Impl rule__And_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__0__Impl_in_rule__And_expr__Group__022644);
            rule__And_expr__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__1_in_rule__And_expr__Group__022647);
            rule__And_expr__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group__0"


    // $ANTLR start "rule__And_expr__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11154:1: rule__And_expr__Group__0__Impl : ( ruleshift_expr ) ;
    public final void rule__And_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11158:1: ( ( ruleshift_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11159:1: ( ruleshift_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11159:1: ( ruleshift_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11160:1: ruleshift_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getShift_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleshift_expr_in_rule__And_expr__Group__0__Impl22674);
            ruleshift_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getShift_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group__0__Impl"


    // $ANTLR start "rule__And_expr__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11171:1: rule__And_expr__Group__1 : rule__And_expr__Group__1__Impl ;
    public final void rule__And_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11175:1: ( rule__And_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11176:2: rule__And_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__1__Impl_in_rule__And_expr__Group__122703);
            rule__And_expr__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group__1"


    // $ANTLR start "rule__And_expr__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11182:1: rule__And_expr__Group__1__Impl : ( ( rule__And_expr__Group_1__0 )* ) ;
    public final void rule__And_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11186:1: ( ( ( rule__And_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11187:1: ( ( rule__And_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11187:1: ( ( rule__And_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11188:1: ( rule__And_expr__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11189:1: ( rule__And_expr__Group_1__0 )*
            loop79:
            do {
                int alt79=2;
                int LA79_0 = input.LA(1);

                if ( (LA79_0==79) ) {
                    alt79=1;
                }


                switch (alt79) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11189:2: rule__And_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__0_in_rule__And_expr__Group__1__Impl22730);
            	    rule__And_expr__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop79;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group__1__Impl"


    // $ANTLR start "rule__And_expr__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11203:1: rule__And_expr__Group_1__0 : rule__And_expr__Group_1__0__Impl rule__And_expr__Group_1__1 ;
    public final void rule__And_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11207:1: ( rule__And_expr__Group_1__0__Impl rule__And_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11208:2: rule__And_expr__Group_1__0__Impl rule__And_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__0__Impl_in_rule__And_expr__Group_1__022765);
            rule__And_expr__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__1_in_rule__And_expr__Group_1__022768);
            rule__And_expr__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group_1__0"


    // $ANTLR start "rule__And_expr__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11215:1: rule__And_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__And_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11219:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11220:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11220:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11221:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11222:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11224:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group_1__0__Impl"


    // $ANTLR start "rule__And_expr__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11234:1: rule__And_expr__Group_1__1 : rule__And_expr__Group_1__1__Impl rule__And_expr__Group_1__2 ;
    public final void rule__And_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11238:1: ( rule__And_expr__Group_1__1__Impl rule__And_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11239:2: rule__And_expr__Group_1__1__Impl rule__And_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__1__Impl_in_rule__And_expr__Group_1__122826);
            rule__And_expr__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__2_in_rule__And_expr__Group_1__122829);
            rule__And_expr__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group_1__1"


    // $ANTLR start "rule__And_expr__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11246:1: rule__And_expr__Group_1__1__Impl : ( ( rule__And_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__And_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11250:1: ( ( ( rule__And_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11251:1: ( ( rule__And_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11251:1: ( ( rule__And_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11252:1: ( rule__And_expr__OperatorAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11253:1: ( rule__And_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11253:2: rule__And_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__OperatorAssignment_1_1_in_rule__And_expr__Group_1__1__Impl22856);
            rule__And_expr__OperatorAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group_1__1__Impl"


    // $ANTLR start "rule__And_expr__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11263:1: rule__And_expr__Group_1__2 : rule__And_expr__Group_1__2__Impl ;
    public final void rule__And_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11267:1: ( rule__And_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11268:2: rule__And_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__2__Impl_in_rule__And_expr__Group_1__222886);
            rule__And_expr__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group_1__2"


    // $ANTLR start "rule__And_expr__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11274:1: rule__And_expr__Group_1__2__Impl : ( ( rule__And_expr__RightAssignment_1_2 ) ) ;
    public final void rule__And_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11278:1: ( ( ( rule__And_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11279:1: ( ( rule__And_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11279:1: ( ( rule__And_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11280:1: ( rule__And_expr__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11281:1: ( rule__And_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11281:2: rule__And_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__RightAssignment_1_2_in_rule__And_expr__Group_1__2__Impl22913);
            rule__And_expr__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__Group_1__2__Impl"


    // $ANTLR start "rule__Shift_expr__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11297:1: rule__Shift_expr__Group__0 : rule__Shift_expr__Group__0__Impl rule__Shift_expr__Group__1 ;
    public final void rule__Shift_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11301:1: ( rule__Shift_expr__Group__0__Impl rule__Shift_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11302:2: rule__Shift_expr__Group__0__Impl rule__Shift_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__0__Impl_in_rule__Shift_expr__Group__022949);
            rule__Shift_expr__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__1_in_rule__Shift_expr__Group__022952);
            rule__Shift_expr__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group__0"


    // $ANTLR start "rule__Shift_expr__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11309:1: rule__Shift_expr__Group__0__Impl : ( ruleadd_expr ) ;
    public final void rule__Shift_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11313:1: ( ( ruleadd_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11314:1: ( ruleadd_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11314:1: ( ruleadd_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11315:1: ruleadd_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getAdd_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleadd_expr_in_rule__Shift_expr__Group__0__Impl22979);
            ruleadd_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getAdd_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group__0__Impl"


    // $ANTLR start "rule__Shift_expr__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11326:1: rule__Shift_expr__Group__1 : rule__Shift_expr__Group__1__Impl ;
    public final void rule__Shift_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11330:1: ( rule__Shift_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11331:2: rule__Shift_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__1__Impl_in_rule__Shift_expr__Group__123008);
            rule__Shift_expr__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group__1"


    // $ANTLR start "rule__Shift_expr__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11337:1: rule__Shift_expr__Group__1__Impl : ( ( rule__Shift_expr__Group_1__0 )* ) ;
    public final void rule__Shift_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11341:1: ( ( ( rule__Shift_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11342:1: ( ( rule__Shift_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11342:1: ( ( rule__Shift_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11343:1: ( rule__Shift_expr__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11344:1: ( rule__Shift_expr__Group_1__0 )*
            loop80:
            do {
                int alt80=2;
                int LA80_0 = input.LA(1);

                if ( ((LA80_0>=32 && LA80_0<=33)) ) {
                    alt80=1;
                }


                switch (alt80) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11344:2: rule__Shift_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group_1__0_in_rule__Shift_expr__Group__1__Impl23035);
            	    rule__Shift_expr__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop80;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group__1__Impl"


    // $ANTLR start "rule__Shift_expr__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11358:1: rule__Shift_expr__Group_1__0 : rule__Shift_expr__Group_1__0__Impl rule__Shift_expr__Group_1__1 ;
    public final void rule__Shift_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11362:1: ( rule__Shift_expr__Group_1__0__Impl rule__Shift_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11363:2: rule__Shift_expr__Group_1__0__Impl rule__Shift_expr__Group_1__1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__Group_1__0__Impl_in_rule__Shift_expr__Group_1__023070);
            rule__Shift_expr__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__Group_1__1_in_rule__Shift_expr__Group_1__023073);
            rule__Shift_expr__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group_1__0"


    // $ANTLR start "rule__Shift_expr__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11370:1: rule__Shift_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Shift_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11374:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11375:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11375:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11376:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11377:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11379:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group_1__0__Impl"


    // $ANTLR start "rule__Shift_expr__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11389:1: rule__Shift_expr__Group_1__1 : rule__Shift_expr__Group_1__1__Impl rule__Shift_expr__Group_1__2 ;
    public final void rule__Shift_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11393:1: ( rule__Shift_expr__Group_1__1__Impl rule__Shift_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11394:2: rule__Shift_expr__Group_1__1__Impl rule__Shift_expr__Group_1__2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__Group_1__1__Impl_in_rule__Shift_expr__Group_1__123131);
            rule__Shift_expr__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__Group_1__2_in_rule__Shift_expr__Group_1__123134);
            rule__Shift_expr__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group_1__1"


    // $ANTLR start "rule__Shift_expr__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11401:1: rule__Shift_expr__Group_1__1__Impl : ( ( rule__Shift_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Shift_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11405:1: ( ( ( rule__Shift_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11406:1: ( ( rule__Shift_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11406:1: ( ( rule__Shift_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11407:1: ( rule__Shift_expr__OperatorAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11408:1: ( rule__Shift_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11408:2: rule__Shift_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__OperatorAssignment_1_1_in_rule__Shift_expr__Group_1__1__Impl23161);
            rule__Shift_expr__OperatorAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group_1__1__Impl"


    // $ANTLR start "rule__Shift_expr__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11418:1: rule__Shift_expr__Group_1__2 : rule__Shift_expr__Group_1__2__Impl ;
    public final void rule__Shift_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11422:1: ( rule__Shift_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11423:2: rule__Shift_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__Group_1__2__Impl_in_rule__Shift_expr__Group_1__223191);
            rule__Shift_expr__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group_1__2"


    // $ANTLR start "rule__Shift_expr__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11429:1: rule__Shift_expr__Group_1__2__Impl : ( ( rule__Shift_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Shift_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11433:1: ( ( ( rule__Shift_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11434:1: ( ( rule__Shift_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11434:1: ( ( rule__Shift_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11435:1: ( rule__Shift_expr__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11436:1: ( rule__Shift_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11436:2: rule__Shift_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__RightAssignment_1_2_in_rule__Shift_expr__Group_1__2__Impl23218);
            rule__Shift_expr__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__Group_1__2__Impl"


    // $ANTLR start "rule__Add_expr__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11452:1: rule__Add_expr__Group__0 : rule__Add_expr__Group__0__Impl rule__Add_expr__Group__1 ;
    public final void rule__Add_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11456:1: ( rule__Add_expr__Group__0__Impl rule__Add_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11457:2: rule__Add_expr__Group__0__Impl rule__Add_expr__Group__1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group__0__Impl_in_rule__Add_expr__Group__023254);
            rule__Add_expr__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group__1_in_rule__Add_expr__Group__023257);
            rule__Add_expr__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group__0"


    // $ANTLR start "rule__Add_expr__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11464:1: rule__Add_expr__Group__0__Impl : ( rulemult_expr ) ;
    public final void rule__Add_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11468:1: ( ( rulemult_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11469:1: ( rulemult_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11469:1: ( rulemult_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11470:1: rulemult_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getMult_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulemult_expr_in_rule__Add_expr__Group__0__Impl23284);
            rulemult_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getMult_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group__0__Impl"


    // $ANTLR start "rule__Add_expr__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11481:1: rule__Add_expr__Group__1 : rule__Add_expr__Group__1__Impl ;
    public final void rule__Add_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11485:1: ( rule__Add_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11486:2: rule__Add_expr__Group__1__Impl
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group__1__Impl_in_rule__Add_expr__Group__123313);
            rule__Add_expr__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group__1"


    // $ANTLR start "rule__Add_expr__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11492:1: rule__Add_expr__Group__1__Impl : ( ( rule__Add_expr__Group_1__0 )* ) ;
    public final void rule__Add_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11496:1: ( ( ( rule__Add_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11497:1: ( ( rule__Add_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11497:1: ( ( rule__Add_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11498:1: ( rule__Add_expr__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11499:1: ( rule__Add_expr__Group_1__0 )*
            loop81:
            do {
                int alt81=2;
                int LA81_0 = input.LA(1);

                if ( ((LA81_0>=34 && LA81_0<=35)) ) {
                    alt81=1;
                }


                switch (alt81) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11499:2: rule__Add_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group_1__0_in_rule__Add_expr__Group__1__Impl23340);
            	    rule__Add_expr__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop81;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group__1__Impl"


    // $ANTLR start "rule__Add_expr__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11513:1: rule__Add_expr__Group_1__0 : rule__Add_expr__Group_1__0__Impl rule__Add_expr__Group_1__1 ;
    public final void rule__Add_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11517:1: ( rule__Add_expr__Group_1__0__Impl rule__Add_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11518:2: rule__Add_expr__Group_1__0__Impl rule__Add_expr__Group_1__1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group_1__0__Impl_in_rule__Add_expr__Group_1__023375);
            rule__Add_expr__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group_1__1_in_rule__Add_expr__Group_1__023378);
            rule__Add_expr__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group_1__0"


    // $ANTLR start "rule__Add_expr__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11525:1: rule__Add_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Add_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11529:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11530:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11530:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11531:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11532:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11534:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group_1__0__Impl"


    // $ANTLR start "rule__Add_expr__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11544:1: rule__Add_expr__Group_1__1 : rule__Add_expr__Group_1__1__Impl rule__Add_expr__Group_1__2 ;
    public final void rule__Add_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11548:1: ( rule__Add_expr__Group_1__1__Impl rule__Add_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11549:2: rule__Add_expr__Group_1__1__Impl rule__Add_expr__Group_1__2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group_1__1__Impl_in_rule__Add_expr__Group_1__123436);
            rule__Add_expr__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group_1__2_in_rule__Add_expr__Group_1__123439);
            rule__Add_expr__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group_1__1"


    // $ANTLR start "rule__Add_expr__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11556:1: rule__Add_expr__Group_1__1__Impl : ( ( rule__Add_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Add_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11560:1: ( ( ( rule__Add_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11561:1: ( ( rule__Add_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11561:1: ( ( rule__Add_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11562:1: ( rule__Add_expr__OperatorAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11563:1: ( rule__Add_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11563:2: rule__Add_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__OperatorAssignment_1_1_in_rule__Add_expr__Group_1__1__Impl23466);
            rule__Add_expr__OperatorAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group_1__1__Impl"


    // $ANTLR start "rule__Add_expr__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11573:1: rule__Add_expr__Group_1__2 : rule__Add_expr__Group_1__2__Impl ;
    public final void rule__Add_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11577:1: ( rule__Add_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11578:2: rule__Add_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__Group_1__2__Impl_in_rule__Add_expr__Group_1__223496);
            rule__Add_expr__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group_1__2"


    // $ANTLR start "rule__Add_expr__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11584:1: rule__Add_expr__Group_1__2__Impl : ( ( rule__Add_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Add_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11588:1: ( ( ( rule__Add_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11589:1: ( ( rule__Add_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11589:1: ( ( rule__Add_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11590:1: ( rule__Add_expr__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11591:1: ( rule__Add_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11591:2: rule__Add_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__RightAssignment_1_2_in_rule__Add_expr__Group_1__2__Impl23523);
            rule__Add_expr__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__Group_1__2__Impl"


    // $ANTLR start "rule__Mult_expr__Group__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11607:1: rule__Mult_expr__Group__0 : rule__Mult_expr__Group__0__Impl rule__Mult_expr__Group__1 ;
    public final void rule__Mult_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11611:1: ( rule__Mult_expr__Group__0__Impl rule__Mult_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11612:2: rule__Mult_expr__Group__0__Impl rule__Mult_expr__Group__1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group__0__Impl_in_rule__Mult_expr__Group__023559);
            rule__Mult_expr__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group__1_in_rule__Mult_expr__Group__023562);
            rule__Mult_expr__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group__0"


    // $ANTLR start "rule__Mult_expr__Group__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11619:1: rule__Mult_expr__Group__0__Impl : ( ruleunary_expr ) ;
    public final void rule__Mult_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11623:1: ( ( ruleunary_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11624:1: ( ruleunary_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11624:1: ( ruleunary_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11625:1: ruleunary_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getUnary_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleunary_expr_in_rule__Mult_expr__Group__0__Impl23589);
            ruleunary_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getUnary_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group__0__Impl"


    // $ANTLR start "rule__Mult_expr__Group__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11636:1: rule__Mult_expr__Group__1 : rule__Mult_expr__Group__1__Impl ;
    public final void rule__Mult_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11640:1: ( rule__Mult_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11641:2: rule__Mult_expr__Group__1__Impl
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group__1__Impl_in_rule__Mult_expr__Group__123618);
            rule__Mult_expr__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group__1"


    // $ANTLR start "rule__Mult_expr__Group__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11647:1: rule__Mult_expr__Group__1__Impl : ( ( rule__Mult_expr__Group_1__0 )* ) ;
    public final void rule__Mult_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11651:1: ( ( ( rule__Mult_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11652:1: ( ( rule__Mult_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11652:1: ( ( rule__Mult_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11653:1: ( rule__Mult_expr__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11654:1: ( rule__Mult_expr__Group_1__0 )*
            loop82:
            do {
                int alt82=2;
                int LA82_0 = input.LA(1);

                if ( ((LA82_0>=36 && LA82_0<=38)) ) {
                    alt82=1;
                }


                switch (alt82) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11654:2: rule__Mult_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group_1__0_in_rule__Mult_expr__Group__1__Impl23645);
            	    rule__Mult_expr__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop82;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group__1__Impl"


    // $ANTLR start "rule__Mult_expr__Group_1__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11668:1: rule__Mult_expr__Group_1__0 : rule__Mult_expr__Group_1__0__Impl rule__Mult_expr__Group_1__1 ;
    public final void rule__Mult_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11672:1: ( rule__Mult_expr__Group_1__0__Impl rule__Mult_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11673:2: rule__Mult_expr__Group_1__0__Impl rule__Mult_expr__Group_1__1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group_1__0__Impl_in_rule__Mult_expr__Group_1__023680);
            rule__Mult_expr__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group_1__1_in_rule__Mult_expr__Group_1__023683);
            rule__Mult_expr__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group_1__0"


    // $ANTLR start "rule__Mult_expr__Group_1__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11680:1: rule__Mult_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Mult_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11684:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11685:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11685:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11686:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11687:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11689:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group_1__0__Impl"


    // $ANTLR start "rule__Mult_expr__Group_1__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11699:1: rule__Mult_expr__Group_1__1 : rule__Mult_expr__Group_1__1__Impl rule__Mult_expr__Group_1__2 ;
    public final void rule__Mult_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11703:1: ( rule__Mult_expr__Group_1__1__Impl rule__Mult_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11704:2: rule__Mult_expr__Group_1__1__Impl rule__Mult_expr__Group_1__2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group_1__1__Impl_in_rule__Mult_expr__Group_1__123741);
            rule__Mult_expr__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group_1__2_in_rule__Mult_expr__Group_1__123744);
            rule__Mult_expr__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group_1__1"


    // $ANTLR start "rule__Mult_expr__Group_1__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11711:1: rule__Mult_expr__Group_1__1__Impl : ( ( rule__Mult_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Mult_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11715:1: ( ( ( rule__Mult_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11716:1: ( ( rule__Mult_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11716:1: ( ( rule__Mult_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11717:1: ( rule__Mult_expr__OperatorAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11718:1: ( rule__Mult_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11718:2: rule__Mult_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__OperatorAssignment_1_1_in_rule__Mult_expr__Group_1__1__Impl23771);
            rule__Mult_expr__OperatorAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group_1__1__Impl"


    // $ANTLR start "rule__Mult_expr__Group_1__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11728:1: rule__Mult_expr__Group_1__2 : rule__Mult_expr__Group_1__2__Impl ;
    public final void rule__Mult_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11732:1: ( rule__Mult_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11733:2: rule__Mult_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__Group_1__2__Impl_in_rule__Mult_expr__Group_1__223801);
            rule__Mult_expr__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group_1__2"


    // $ANTLR start "rule__Mult_expr__Group_1__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11739:1: rule__Mult_expr__Group_1__2__Impl : ( ( rule__Mult_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Mult_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11743:1: ( ( ( rule__Mult_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11744:1: ( ( rule__Mult_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11744:1: ( ( rule__Mult_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11745:1: ( rule__Mult_expr__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11746:1: ( rule__Mult_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11746:2: rule__Mult_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__RightAssignment_1_2_in_rule__Mult_expr__Group_1__2__Impl23828);
            rule__Mult_expr__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__Group_1__2__Impl"


    // $ANTLR start "rule__Unary_expr__Group_0__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11762:1: rule__Unary_expr__Group_0__0 : rule__Unary_expr__Group_0__0__Impl rule__Unary_expr__Group_0__1 ;
    public final void rule__Unary_expr__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11766:1: ( rule__Unary_expr__Group_0__0__Impl rule__Unary_expr__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11767:2: rule__Unary_expr__Group_0__0__Impl rule__Unary_expr__Group_0__1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Unary_expr__Group_0__0__Impl_in_rule__Unary_expr__Group_0__023864);
            rule__Unary_expr__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Unary_expr__Group_0__1_in_rule__Unary_expr__Group_0__023867);
            rule__Unary_expr__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__Group_0__0"


    // $ANTLR start "rule__Unary_expr__Group_0__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11774:1: rule__Unary_expr__Group_0__0__Impl : ( () ) ;
    public final void rule__Unary_expr__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11778:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11779:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11779:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11780:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getUnaryExpressionAction_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11781:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11783:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getUnaryExpressionAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__Group_0__0__Impl"


    // $ANTLR start "rule__Unary_expr__Group_0__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11793:1: rule__Unary_expr__Group_0__1 : rule__Unary_expr__Group_0__1__Impl rule__Unary_expr__Group_0__2 ;
    public final void rule__Unary_expr__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11797:1: ( rule__Unary_expr__Group_0__1__Impl rule__Unary_expr__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11798:2: rule__Unary_expr__Group_0__1__Impl rule__Unary_expr__Group_0__2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Unary_expr__Group_0__1__Impl_in_rule__Unary_expr__Group_0__123925);
            rule__Unary_expr__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Unary_expr__Group_0__2_in_rule__Unary_expr__Group_0__123928);
            rule__Unary_expr__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__Group_0__1"


    // $ANTLR start "rule__Unary_expr__Group_0__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11805:1: rule__Unary_expr__Group_0__1__Impl : ( ( rule__Unary_expr__OperatorAssignment_0_1 ) ) ;
    public final void rule__Unary_expr__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11809:1: ( ( ( rule__Unary_expr__OperatorAssignment_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11810:1: ( ( rule__Unary_expr__OperatorAssignment_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11810:1: ( ( rule__Unary_expr__OperatorAssignment_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11811:1: ( rule__Unary_expr__OperatorAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getOperatorAssignment_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11812:1: ( rule__Unary_expr__OperatorAssignment_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11812:2: rule__Unary_expr__OperatorAssignment_0_1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Unary_expr__OperatorAssignment_0_1_in_rule__Unary_expr__Group_0__1__Impl23955);
            rule__Unary_expr__OperatorAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getOperatorAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__Group_0__1__Impl"


    // $ANTLR start "rule__Unary_expr__Group_0__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11822:1: rule__Unary_expr__Group_0__2 : rule__Unary_expr__Group_0__2__Impl ;
    public final void rule__Unary_expr__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11826:1: ( rule__Unary_expr__Group_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11827:2: rule__Unary_expr__Group_0__2__Impl
            {
            pushFollow(FollowSets001.FOLLOW_rule__Unary_expr__Group_0__2__Impl_in_rule__Unary_expr__Group_0__223985);
            rule__Unary_expr__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__Group_0__2"


    // $ANTLR start "rule__Unary_expr__Group_0__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11833:1: rule__Unary_expr__Group_0__2__Impl : ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) ) ;
    public final void rule__Unary_expr__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11837:1: ( ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11838:1: ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11838:1: ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11839:1: ( rule__Unary_expr__ExpressionAssignment_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getExpressionAssignment_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11840:1: ( rule__Unary_expr__ExpressionAssignment_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11840:2: rule__Unary_expr__ExpressionAssignment_0_2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Unary_expr__ExpressionAssignment_0_2_in_rule__Unary_expr__Group_0__2__Impl24012);
            rule__Unary_expr__ExpressionAssignment_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getExpressionAssignment_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__Group_0__2__Impl"


    // $ANTLR start "rule__Primary_expr__Group_2__0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11856:1: rule__Primary_expr__Group_2__0 : rule__Primary_expr__Group_2__0__Impl rule__Primary_expr__Group_2__1 ;
    public final void rule__Primary_expr__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11860:1: ( rule__Primary_expr__Group_2__0__Impl rule__Primary_expr__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11861:2: rule__Primary_expr__Group_2__0__Impl rule__Primary_expr__Group_2__1
            {
            pushFollow(FollowSets001.FOLLOW_rule__Primary_expr__Group_2__0__Impl_in_rule__Primary_expr__Group_2__024048);
            rule__Primary_expr__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Primary_expr__Group_2__1_in_rule__Primary_expr__Group_2__024051);
            rule__Primary_expr__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary_expr__Group_2__0"


    // $ANTLR start "rule__Primary_expr__Group_2__0__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11868:1: rule__Primary_expr__Group_2__0__Impl : ( '(' ) ;
    public final void rule__Primary_expr__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11872:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11873:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11873:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11874:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getLeftParenthesisKeyword_2_0()); 
            }
            match(input,50,FollowSets001.FOLLOW_50_in_rule__Primary_expr__Group_2__0__Impl24079); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getLeftParenthesisKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary_expr__Group_2__0__Impl"


    // $ANTLR start "rule__Primary_expr__Group_2__1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11887:1: rule__Primary_expr__Group_2__1 : rule__Primary_expr__Group_2__1__Impl rule__Primary_expr__Group_2__2 ;
    public final void rule__Primary_expr__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11891:1: ( rule__Primary_expr__Group_2__1__Impl rule__Primary_expr__Group_2__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11892:2: rule__Primary_expr__Group_2__1__Impl rule__Primary_expr__Group_2__2
            {
            pushFollow(FollowSets001.FOLLOW_rule__Primary_expr__Group_2__1__Impl_in_rule__Primary_expr__Group_2__124110);
            rule__Primary_expr__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets001.FOLLOW_rule__Primary_expr__Group_2__2_in_rule__Primary_expr__Group_2__124113);
            rule__Primary_expr__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary_expr__Group_2__1"


    // $ANTLR start "rule__Primary_expr__Group_2__1__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11899:1: rule__Primary_expr__Group_2__1__Impl : ( ruleconst_exp ) ;
    public final void rule__Primary_expr__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11903:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11904:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11904:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11905:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getConst_expParserRuleCall_2_1()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Primary_expr__Group_2__1__Impl24140);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getConst_expParserRuleCall_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary_expr__Group_2__1__Impl"


    // $ANTLR start "rule__Primary_expr__Group_2__2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11916:1: rule__Primary_expr__Group_2__2 : rule__Primary_expr__Group_2__2__Impl ;
    public final void rule__Primary_expr__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11920:1: ( rule__Primary_expr__Group_2__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11921:2: rule__Primary_expr__Group_2__2__Impl
            {
            pushFollow(FollowSets001.FOLLOW_rule__Primary_expr__Group_2__2__Impl_in_rule__Primary_expr__Group_2__224169);
            rule__Primary_expr__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary_expr__Group_2__2"


    // $ANTLR start "rule__Primary_expr__Group_2__2__Impl"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11927:1: rule__Primary_expr__Group_2__2__Impl : ( ')' ) ;
    public final void rule__Primary_expr__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11931:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11932:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11932:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11933:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getRightParenthesisKeyword_2_2()); 
            }
            match(input,51,FollowSets001.FOLLOW_51_in_rule__Primary_expr__Group_2__2__Impl24197); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getRightParenthesisKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary_expr__Group_2__2__Impl"


    // $ANTLR start "rule__Specification__IncludesAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11953:1: rule__Specification__IncludesAssignment_1 : ( ruleinclude_decl ) ;
    public final void rule__Specification__IncludesAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11957:1: ( ( ruleinclude_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11958:1: ( ruleinclude_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11958:1: ( ruleinclude_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11959:1: ruleinclude_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getIncludesInclude_declParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleinclude_decl_in_rule__Specification__IncludesAssignment_124239);
            ruleinclude_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getIncludesInclude_declParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__IncludesAssignment_1"


    // $ANTLR start "rule__Specification__ContainsAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11968:1: rule__Specification__ContainsAssignment_2 : ( ruledefinition ) ;
    public final void rule__Specification__ContainsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11972:1: ( ( ruledefinition ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11973:1: ( ruledefinition )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11973:1: ( ruledefinition )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11974:1: ruledefinition
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getContainsDefinitionParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruledefinition_in_rule__Specification__ContainsAssignment_224270);
            ruledefinition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getContainsDefinitionParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Specification__ContainsAssignment_2"


    // $ANTLR start "rule__Include_decl__ImportURIAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11983:1: rule__Include_decl__ImportURIAssignment_1 : ( RULE_STRING ) ;
    public final void rule__Include_decl__ImportURIAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11987:1: ( ( RULE_STRING ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11988:1: ( RULE_STRING )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11988:1: ( RULE_STRING )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11989:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
            }
            match(input,RULE_STRING,FollowSets001.FOLLOW_RULE_STRING_in_rule__Include_decl__ImportURIAssignment_124301); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Include_decl__ImportURIAssignment_1"


    // $ANTLR start "rule__Module__IdentifierAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11998:1: rule__Module__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Module__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12002:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12003:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12003:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12004:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Module__IdentifierAssignment_124332); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__IdentifierAssignment_1"


    // $ANTLR start "rule__Module__ContainsAssignment_3_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12013:1: rule__Module__ContainsAssignment_3_0 : ( ruledefinition ) ;
    public final void rule__Module__ContainsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12017:1: ( ( ruledefinition ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12018:1: ( ruledefinition )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12018:1: ( ruledefinition )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12019:1: ruledefinition
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getContainsDefinitionParserRuleCall_3_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruledefinition_in_rule__Module__ContainsAssignment_3_024363);
            ruledefinition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getContainsDefinitionParserRuleCall_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Module__ContainsAssignment_3_0"


    // $ANTLR start "rule__Interface_decl__IsAbstractAssignment_0_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12028:1: rule__Interface_decl__IsAbstractAssignment_0_0 : ( ( 'abstract' ) ) ;
    public final void rule__Interface_decl__IsAbstractAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12032:1: ( ( ( 'abstract' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12033:1: ( ( 'abstract' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12033:1: ( ( 'abstract' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12034:1: ( 'abstract' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12035:1: ( 'abstract' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12036:1: 'abstract'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }
            match(input,30,FollowSets001.FOLLOW_30_in_rule__Interface_decl__IsAbstractAssignment_0_024399); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__IsAbstractAssignment_0_0"


    // $ANTLR start "rule__Interface_decl__IsCustomAssignment_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12051:1: rule__Interface_decl__IsCustomAssignment_0_1 : ( ( 'local' ) ) ;
    public final void rule__Interface_decl__IsCustomAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12055:1: ( ( ( 'local' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12056:1: ( ( 'local' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12056:1: ( ( 'local' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12057:1: ( 'local' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12058:1: ( 'local' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12059:1: 'local'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }
            match(input,31,FollowSets001.FOLLOW_31_in_rule__Interface_decl__IsCustomAssignment_0_124443); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__IsCustomAssignment_0_1"


    // $ANTLR start "rule__Interface_decl__IdentifierAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12074:1: rule__Interface_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Interface_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12078:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12079:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12079:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12080:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Interface_decl__IdentifierAssignment_224482); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__IdentifierAssignment_2"


    // $ANTLR start "rule__Interface_decl__DerivesFromAssignment_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12089:1: rule__Interface_decl__DerivesFromAssignment_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Interface_decl__DerivesFromAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12093:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12094:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12094:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12095:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12096:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12097:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_124517); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__DerivesFromAssignment_3_1"


    // $ANTLR start "rule__Interface_decl__DerivesFromAssignment_3_2_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12108:1: rule__Interface_decl__DerivesFromAssignment_3_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Interface_decl__DerivesFromAssignment_3_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12112:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12113:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12113:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12114:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12115:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12116:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_2_124556); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__DerivesFromAssignment_3_2_1"


    // $ANTLR start "rule__Interface_decl__ContainsAssignment_5_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12127:1: rule__Interface_decl__ContainsAssignment_5_0 : ( ruleexport ) ;
    public final void rule__Interface_decl__ContainsAssignment_5_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12131:1: ( ( ruleexport ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12132:1: ( ruleexport )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12132:1: ( ruleexport )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12133:1: ruleexport
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getContainsExportParserRuleCall_5_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleexport_in_rule__Interface_decl__ContainsAssignment_5_024591);
            ruleexport();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getContainsExportParserRuleCall_5_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_decl__ContainsAssignment_5_0"


    // $ANTLR start "rule__Interface_fwd__IdentifierAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12142:1: rule__Interface_fwd__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Interface_fwd__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12146:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12147:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12147:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12148:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Interface_fwd__IdentifierAssignment_224622); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface_fwd__IdentifierAssignment_2"


    // $ANTLR start "rule__Op_decl__IsOnewayAssignment_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12157:1: rule__Op_decl__IsOnewayAssignment_0 : ( ( 'oneway' ) ) ;
    public final void rule__Op_decl__IsOnewayAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12161:1: ( ( ( 'oneway' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12162:1: ( ( 'oneway' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12162:1: ( ( 'oneway' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12163:1: ( 'oneway' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12164:1: ( 'oneway' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12165:1: 'oneway'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }
            match(input,74,FollowSets001.FOLLOW_74_in_rule__Op_decl__IsOnewayAssignment_024658); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__IsOnewayAssignment_0"


    // $ANTLR start "rule__Op_decl__ContainedTypeAssignment_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12180:1: rule__Op_decl__ContainedTypeAssignment_1_0 : ( ruleop_type_spec ) ;
    public final void rule__Op_decl__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12184:1: ( ( ruleop_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12185:1: ( ruleop_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12185:1: ( ruleop_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12186:1: ruleop_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContainedTypeOp_type_specParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleop_type_spec_in_rule__Op_decl__ContainedTypeAssignment_1_024697);
            ruleop_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContainedTypeOp_type_specParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__ContainedTypeAssignment_1_0"


    // $ANTLR start "rule__Op_decl__SharedTypeAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12195:1: rule__Op_decl__SharedTypeAssignment_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Op_decl__SharedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12199:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12200:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12200:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12201:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12202:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12203:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Op_decl__SharedTypeAssignment_1_124732); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__SharedTypeAssignment_1_1"


    // $ANTLR start "rule__Op_decl__IdentifierAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12214:1: rule__Op_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Op_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12218:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12219:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12219:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12220:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Op_decl__IdentifierAssignment_224767); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__IdentifierAssignment_2"


    // $ANTLR start "rule__Op_decl__ParametersAssignment_4_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12229:1: rule__Op_decl__ParametersAssignment_4_0 : ( ruleparam_decl ) ;
    public final void rule__Op_decl__ParametersAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12233:1: ( ( ruleparam_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12234:1: ( ruleparam_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12234:1: ( ruleparam_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12235:1: ruleparam_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_024798);
            ruleparam_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__ParametersAssignment_4_0"


    // $ANTLR start "rule__Op_decl__ParametersAssignment_4_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12244:1: rule__Op_decl__ParametersAssignment_4_1_1 : ( ruleparam_decl ) ;
    public final void rule__Op_decl__ParametersAssignment_4_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12248:1: ( ( ruleparam_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12249:1: ( ruleparam_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12249:1: ( ruleparam_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12250:1: ruleparam_decl
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_1_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_1_124829);
            ruleparam_decl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__ParametersAssignment_4_1_1"


    // $ANTLR start "rule__Op_decl__CanRaiseAssignment_6_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12259:1: rule__Op_decl__CanRaiseAssignment_6_2 : ( ( RULE_ID ) ) ;
    public final void rule__Op_decl__CanRaiseAssignment_6_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12263:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12264:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12264:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12265:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12266:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12267:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_224864); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__CanRaiseAssignment_6_2"


    // $ANTLR start "rule__Op_decl__CanRaiseAssignment_6_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12278:1: rule__Op_decl__CanRaiseAssignment_6_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Op_decl__CanRaiseAssignment_6_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12282:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12283:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12283:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12284:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12285:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12286:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_3_124903); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__CanRaiseAssignment_6_3_1"


    // $ANTLR start "rule__Op_decl__ContextsAssignment_7_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12297:1: rule__Op_decl__ContextsAssignment_7_2 : ( RULE_STRING ) ;
    public final void rule__Op_decl__ContextsAssignment_7_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12301:1: ( ( RULE_STRING ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12302:1: ( RULE_STRING )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12302:1: ( RULE_STRING )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12303:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_2_0()); 
            }
            match(input,RULE_STRING,FollowSets001.FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_224938); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__ContextsAssignment_7_2"


    // $ANTLR start "rule__Op_decl__ContextsAssignment_7_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12312:1: rule__Op_decl__ContextsAssignment_7_3_1 : ( RULE_STRING ) ;
    public final void rule__Op_decl__ContextsAssignment_7_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12316:1: ( ( RULE_STRING ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12317:1: ( RULE_STRING )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12317:1: ( RULE_STRING )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12318:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_3_1_0()); 
            }
            match(input,RULE_STRING,FollowSets001.FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_3_124969); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_decl__ContextsAssignment_7_3_1"


    // $ANTLR start "rule__Op_type_spec__KindAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12327:1: rule__Op_type_spec__KindAssignment_1_1 : ( rulevoid_type ) ;
    public final void rule__Op_type_spec__KindAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12331:1: ( ( rulevoid_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12332:1: ( rulevoid_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12332:1: ( rulevoid_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12333:1: rulevoid_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getKindVoid_typeEnumRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulevoid_type_in_rule__Op_type_spec__KindAssignment_1_125000);
            rulevoid_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getKindVoid_typeEnumRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Op_type_spec__KindAssignment_1_1"


    // $ANTLR start "rule__Param_decl__DirectionAssignment_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12342:1: rule__Param_decl__DirectionAssignment_0 : ( ruleparam_attribute ) ;
    public final void rule__Param_decl__DirectionAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12346:1: ( ( ruleparam_attribute ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12347:1: ( ruleparam_attribute )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12347:1: ( ruleparam_attribute )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12348:1: ruleparam_attribute
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getDirectionParam_attributeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleparam_attribute_in_rule__Param_decl__DirectionAssignment_025031);
            ruleparam_attribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getDirectionParam_attributeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__DirectionAssignment_0"


    // $ANTLR start "rule__Param_decl__ContainedTypeAssignment_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12357:1: rule__Param_decl__ContainedTypeAssignment_1_0 : ( rulebase_type_spec ) ;
    public final void rule__Param_decl__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12361:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12362:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12362:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12363:1: rulebase_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getContainedTypeBase_type_specParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulebase_type_spec_in_rule__Param_decl__ContainedTypeAssignment_1_025062);
            rulebase_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getContainedTypeBase_type_specParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__ContainedTypeAssignment_1_0"


    // $ANTLR start "rule__Param_decl__SharedTypeAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12372:1: rule__Param_decl__SharedTypeAssignment_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Param_decl__SharedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12376:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12377:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12377:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12378:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12379:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12380:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Param_decl__SharedTypeAssignment_1_125097); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__SharedTypeAssignment_1_1"


    // $ANTLR start "rule__Param_decl__IdentifierAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12391:1: rule__Param_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Param_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12395:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12396:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12396:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12397:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Param_decl__IdentifierAssignment_225132); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Param_decl__IdentifierAssignment_2"


    // $ANTLR start "rule__Readonly_attr_spec__IsReadonlyAssignment_0_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12406:1: rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 : ( ( 'readonly' ) ) ;
    public final void rule__Readonly_attr_spec__IsReadonlyAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12410:1: ( ( ( 'readonly' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12411:1: ( ( 'readonly' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12411:1: ( ( 'readonly' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12412:1: ( 'readonly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12413:1: ( 'readonly' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12414:1: 'readonly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }
            match(input,75,FollowSets001.FOLLOW_75_in_rule__Readonly_attr_spec__IsReadonlyAssignment_0_025168); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__IsReadonlyAssignment_0_0"


    // $ANTLR start "rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12429:1: rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 : ( rulebase_type_spec ) ;
    public final void rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12433:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12434:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12434:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12435:1: rulebase_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_2_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_025207);
            rulebase_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0"


    // $ANTLR start "rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12444:1: rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12448:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12449:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12449:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12450:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_0_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12451:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12452:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_125242); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1"


    // $ANTLR start "rule__Readonly_attr_spec__IdentifierAssignment_0_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12463:1: rule__Readonly_attr_spec__IdentifierAssignment_0_3 : ( RULE_ID ) ;
    public final void rule__Readonly_attr_spec__IdentifierAssignment_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12467:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12468:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12468:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12469:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_0_3_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_0_325277); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__IdentifierAssignment_0_3"


    // $ANTLR start "rule__Readonly_attr_spec__GetRaisesAssignment_0_6"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12478:1: rule__Readonly_attr_spec__GetRaisesAssignment_0_6 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__GetRaisesAssignment_0_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12482:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12483:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12483:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12484:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_6_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12485:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12486:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_6_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_625312); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_6_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__GetRaisesAssignment_0_6"


    // $ANTLR start "rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12497:1: rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12501:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12502:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12502:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12503:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_7_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12504:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12505:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_7_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_125351); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_7_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1"


    // $ANTLR start "rule__Readonly_attr_spec__IsReadonlyAssignment_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12516:1: rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 : ( ( 'readonly' ) ) ;
    public final void rule__Readonly_attr_spec__IsReadonlyAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12520:1: ( ( ( 'readonly' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12521:1: ( ( 'readonly' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12521:1: ( ( 'readonly' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12522:1: ( 'readonly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12523:1: ( 'readonly' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12524:1: 'readonly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }
            match(input,75,FollowSets001.FOLLOW_75_in_rule__Readonly_attr_spec__IsReadonlyAssignment_1_025391); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__IsReadonlyAssignment_1_0"


    // $ANTLR start "rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12539:1: rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 : ( rulebase_type_spec ) ;
    public final void rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12543:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12544:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12544:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12545:1: rulebase_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_2_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_025430);
            rulebase_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0"


    // $ANTLR start "rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12554:1: rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12558:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12559:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12559:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12560:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_1_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12561:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12562:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_125465); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_1_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1"


    // $ANTLR start "rule__Readonly_attr_spec__IdentifierAssignment_1_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12573:1: rule__Readonly_attr_spec__IdentifierAssignment_1_3 : ( RULE_ID ) ;
    public final void rule__Readonly_attr_spec__IdentifierAssignment_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12577:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12578:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12578:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12579:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_1_3_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_1_325500); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Readonly_attr_spec__IdentifierAssignment_1_3"


    // $ANTLR start "rule__Attr_spec__ContainedTypeAssignment_0_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12588:1: rule__Attr_spec__ContainedTypeAssignment_0_1_0 : ( rulebase_type_spec ) ;
    public final void rule__Attr_spec__ContainedTypeAssignment_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12592:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12593:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12593:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12594:1: rulebase_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_0_1_025531);
            rulebase_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__ContainedTypeAssignment_0_1_0"


    // $ANTLR start "rule__Attr_spec__SharedTypeAssignment_0_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12603:1: rule__Attr_spec__SharedTypeAssignment_0_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SharedTypeAssignment_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12607:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12608:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12608:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12609:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_0_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12610:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12611:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_0_1_125566); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__SharedTypeAssignment_0_1_1"


    // $ANTLR start "rule__Attr_spec__IdentifierAssignment_0_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12622:1: rule__Attr_spec__IdentifierAssignment_0_2 : ( RULE_ID ) ;
    public final void rule__Attr_spec__IdentifierAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12626:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12627:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12627:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12628:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_0_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_0_225601); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__IdentifierAssignment_0_2"


    // $ANTLR start "rule__Attr_spec__GetRaisesAssignment_0_3_0_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12637:1: rule__Attr_spec__GetRaisesAssignment_0_3_0_2 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__GetRaisesAssignment_0_3_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12641:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12642:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12642:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12643:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12644:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12645:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_225636); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__GetRaisesAssignment_0_3_0_2"


    // $ANTLR start "rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12656:1: rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12660:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12661:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12661:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12662:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12663:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12664:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_125675); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1"


    // $ANTLR start "rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12675:1: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12679:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12680:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12680:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12681:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12682:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12683:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_225714); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2"


    // $ANTLR start "rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12694:1: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12698:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12699:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12699:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12700:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12701:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12702:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_125753); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1"


    // $ANTLR start "rule__Attr_spec__SetRaisesAssignment_0_3_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12713:1: rule__Attr_spec__SetRaisesAssignment_0_3_1_2 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12717:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12718:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12718:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12719:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12720:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12721:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_225792); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__SetRaisesAssignment_0_3_1_2"


    // $ANTLR start "rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12732:1: rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12736:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12737:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12737:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12738:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12739:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12740:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_125831); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1"


    // $ANTLR start "rule__Attr_spec__ContainedTypeAssignment_1_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12751:1: rule__Attr_spec__ContainedTypeAssignment_1_1_0 : ( rulebase_type_spec ) ;
    public final void rule__Attr_spec__ContainedTypeAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12755:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12756:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12756:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12757:1: rulebase_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_1_1_025866);
            rulebase_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__ContainedTypeAssignment_1_1_0"


    // $ANTLR start "rule__Attr_spec__SharedTypeAssignment_1_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12766:1: rule__Attr_spec__SharedTypeAssignment_1_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SharedTypeAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12770:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12771:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12771:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12772:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12773:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12774:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_1_1_125901); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__SharedTypeAssignment_1_1_1"


    // $ANTLR start "rule__Attr_spec__IdentifierAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12785:1: rule__Attr_spec__IdentifierAssignment_1_2 : ( RULE_ID ) ;
    public final void rule__Attr_spec__IdentifierAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12789:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12790:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12790:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12791:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_1_225936); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attr_spec__IdentifierAssignment_1_2"


    // $ANTLR start "rule__Except_decl__IdentifierAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12800:1: rule__Except_decl__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Except_decl__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12804:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12805:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12805:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12806:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Except_decl__IdentifierAssignment_125967); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__IdentifierAssignment_1"


    // $ANTLR start "rule__Except_decl__MembersAssignment_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12815:1: rule__Except_decl__MembersAssignment_3 : ( rulemember ) ;
    public final void rule__Except_decl__MembersAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12819:1: ( ( rulemember ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12820:1: ( rulemember )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12820:1: ( rulemember )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12821:1: rulemember
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getMembersMemberParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulemember_in_rule__Except_decl__MembersAssignment_325998);
            rulemember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getMembersMemberParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Except_decl__MembersAssignment_3"


    // $ANTLR start "rule__Alias_type__ContainedTypeAssignment_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12830:1: rule__Alias_type__ContainedTypeAssignment_0_1 : ( rulearray_type_spec ) ;
    public final void rule__Alias_type__ContainedTypeAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12834:1: ( ( rulearray_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12835:1: ( rulearray_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12835:1: ( rulearray_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12836:1: rulearray_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulearray_type_spec_in_rule__Alias_type__ContainedTypeAssignment_0_126029);
            rulearray_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__ContainedTypeAssignment_0_1"


    // $ANTLR start "rule__Alias_type__ContainedTypeAssignment_1_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12845:1: rule__Alias_type__ContainedTypeAssignment_1_1_0 : ( rulesimple_type_spec ) ;
    public final void rule__Alias_type__ContainedTypeAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12849:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12850:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12850:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12851:1: rulesimple_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulesimple_type_spec_in_rule__Alias_type__ContainedTypeAssignment_1_1_026060);
            rulesimple_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__ContainedTypeAssignment_1_1_0"


    // $ANTLR start "rule__Alias_type__SharedTypeAssignment_1_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12860:1: rule__Alias_type__SharedTypeAssignment_1_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Alias_type__SharedTypeAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12864:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12865:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12865:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12866:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12867:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12868:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Alias_type__SharedTypeAssignment_1_1_126095); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__SharedTypeAssignment_1_1_1"


    // $ANTLR start "rule__Alias_type__IdentifierAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12879:1: rule__Alias_type__IdentifierAssignment_1_2 : ( RULE_ID ) ;
    public final void rule__Alias_type__IdentifierAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12883:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12884:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12884:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12885:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Alias_type__IdentifierAssignment_1_226130); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Alias_type__IdentifierAssignment_1_2"


    // $ANTLR start "rule__Array_type_spec__ContainedTypeAssignment_0_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12894:1: rule__Array_type_spec__ContainedTypeAssignment_0_0 : ( rulesimple_type_spec ) ;
    public final void rule__Array_type_spec__ContainedTypeAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12898:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12899:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12899:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12900:1: rulesimple_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getContainedTypeSimple_type_specParserRuleCall_0_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulesimple_type_spec_in_rule__Array_type_spec__ContainedTypeAssignment_0_026161);
            rulesimple_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getContainedTypeSimple_type_specParserRuleCall_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__ContainedTypeAssignment_0_0"


    // $ANTLR start "rule__Array_type_spec__SharedTypeAssignment_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12909:1: rule__Array_type_spec__SharedTypeAssignment_0_1 : ( ( RULE_ID ) ) ;
    public final void rule__Array_type_spec__SharedTypeAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12913:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12914:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12914:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12915:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefCrossReference_0_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12916:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12917:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Array_type_spec__SharedTypeAssignment_0_126196); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefCrossReference_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__SharedTypeAssignment_0_1"


    // $ANTLR start "rule__Array_type_spec__NameAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12928:1: rule__Array_type_spec__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Array_type_spec__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12932:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12933:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12933:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12934:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getNameIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Array_type_spec__NameAssignment_126231); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getNameIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__NameAssignment_1"


    // $ANTLR start "rule__Array_type_spec__BoundsAssignment_2_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12943:1: rule__Array_type_spec__BoundsAssignment_2_1 : ( ruleconst_exp ) ;
    public final void rule__Array_type_spec__BoundsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12947:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12948:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12948:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12949:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getBoundsConst_expParserRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Array_type_spec__BoundsAssignment_2_126262);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getBoundsConst_expParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Array_type_spec__BoundsAssignment_2_1"


    // $ANTLR start "rule__Base_type_spec__KindAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12958:1: rule__Base_type_spec__KindAssignment_1 : ( ruleobject_type ) ;
    public final void rule__Base_type_spec__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12962:1: ( ( ruleobject_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12963:1: ( ruleobject_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12963:1: ( ruleobject_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12964:1: ruleobject_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBase_type_specAccess().getKindObject_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleobject_type_in_rule__Base_type_spec__KindAssignment_126293);
            ruleobject_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBase_type_specAccess().getKindObject_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Base_type_spec__KindAssignment_1"


    // $ANTLR start "rule__Struct_type__IdentifierAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12973:1: rule__Struct_type__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Struct_type__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12977:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12978:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12978:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12979:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Struct_type__IdentifierAssignment_126324); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__IdentifierAssignment_1"


    // $ANTLR start "rule__Struct_type__MembersAssignment_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12988:1: rule__Struct_type__MembersAssignment_3 : ( rulemember ) ;
    public final void rule__Struct_type__MembersAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12992:1: ( ( rulemember ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12993:1: ( rulemember )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12993:1: ( rulemember )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12994:1: rulemember
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getMembersMemberParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulemember_in_rule__Struct_type__MembersAssignment_326355);
            rulemember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getMembersMemberParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Struct_type__MembersAssignment_3"


    // $ANTLR start "rule__Member__ContainedTypeAssignment_0_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13003:1: rule__Member__ContainedTypeAssignment_0_0 : ( rulearray_type_spec ) ;
    public final void rule__Member__ContainedTypeAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13007:1: ( ( rulearray_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13008:1: ( rulearray_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13008:1: ( rulearray_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13009:1: rulearray_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeArray_type_specParserRuleCall_0_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulearray_type_spec_in_rule__Member__ContainedTypeAssignment_0_026386);
            rulearray_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeArray_type_specParserRuleCall_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__ContainedTypeAssignment_0_0"


    // $ANTLR start "rule__Member__ContainedTypeAssignment_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13018:1: rule__Member__ContainedTypeAssignment_1_0 : ( rulesimple_type_spec ) ;
    public final void rule__Member__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13022:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13023:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13023:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13024:1: rulesimple_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeSimple_type_specParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulesimple_type_spec_in_rule__Member__ContainedTypeAssignment_1_026417);
            rulesimple_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeSimple_type_specParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__ContainedTypeAssignment_1_0"


    // $ANTLR start "rule__Member__IdentifierAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13033:1: rule__Member__IdentifierAssignment_1_1 : ( RULE_ID ) ;
    public final void rule__Member__IdentifierAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13037:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13038:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13038:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13039:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_1_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_1_126448); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__IdentifierAssignment_1_1"


    // $ANTLR start "rule__Member__ContainedTypeAssignment_2_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13048:1: rule__Member__ContainedTypeAssignment_2_0 : ( rulestruct_type ) ;
    public final void rule__Member__ContainedTypeAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13052:1: ( ( rulestruct_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13053:1: ( rulestruct_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13053:1: ( rulestruct_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13054:1: rulestruct_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeStruct_typeParserRuleCall_2_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulestruct_type_in_rule__Member__ContainedTypeAssignment_2_026479);
            rulestruct_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeStruct_typeParserRuleCall_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__ContainedTypeAssignment_2_0"


    // $ANTLR start "rule__Member__IdentifierAssignment_2_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13063:1: rule__Member__IdentifierAssignment_2_1 : ( RULE_ID ) ;
    public final void rule__Member__IdentifierAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13067:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13068:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13068:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13069:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_2_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_2_126510); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__IdentifierAssignment_2_1"


    // $ANTLR start "rule__Member__SharedTypeAssignment_3_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13078:1: rule__Member__SharedTypeAssignment_3_0 : ( ( RULE_ID ) ) ;
    public final void rule__Member__SharedTypeAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13082:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13083:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13083:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13084:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSharedTypeTypedefDefCrossReference_3_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13085:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13086:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSharedTypeTypedefDefIDTerminalRuleCall_3_0_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Member__SharedTypeAssignment_3_026545); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSharedTypeTypedefDefIDTerminalRuleCall_3_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSharedTypeTypedefDefCrossReference_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__SharedTypeAssignment_3_0"


    // $ANTLR start "rule__Member__IdentifierAssignment_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13097:1: rule__Member__IdentifierAssignment_3_1 : ( RULE_ID ) ;
    public final void rule__Member__IdentifierAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13101:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13102:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13102:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13103:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_3_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_3_126580); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Member__IdentifierAssignment_3_1"


    // $ANTLR start "rule__Union_type__IdentifierAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13112:1: rule__Union_type__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Union_type__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13116:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13117:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13117:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13118:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Union_type__IdentifierAssignment_126611); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__IdentifierAssignment_1"


    // $ANTLR start "rule__Union_type__ContainedDiscrimAssignment_4_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13127:1: rule__Union_type__ContainedDiscrimAssignment_4_0 : ( ruleswitch_type_spec_cont ) ;
    public final void rule__Union_type__ContainedDiscrimAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13131:1: ( ( ruleswitch_type_spec_cont ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13132:1: ( ruleswitch_type_spec_cont )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13132:1: ( ruleswitch_type_spec_cont )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13133:1: ruleswitch_type_spec_cont
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getContainedDiscrimSwitch_type_spec_contParserRuleCall_4_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleswitch_type_spec_cont_in_rule__Union_type__ContainedDiscrimAssignment_4_026642);
            ruleswitch_type_spec_cont();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getContainedDiscrimSwitch_type_spec_contParserRuleCall_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__ContainedDiscrimAssignment_4_0"


    // $ANTLR start "rule__Union_type__SharedDiscrimAssignment_4_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13142:1: rule__Union_type__SharedDiscrimAssignment_4_1 : ( ( RULE_ID ) ) ;
    public final void rule__Union_type__SharedDiscrimAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13146:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13147:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13147:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13148:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefCrossReference_4_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13149:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13150:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefIDTerminalRuleCall_4_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Union_type__SharedDiscrimAssignment_4_126677); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefIDTerminalRuleCall_4_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefCrossReference_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__SharedDiscrimAssignment_4_1"


    // $ANTLR start "rule__Union_type__UnionMembersAssignment_7"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13161:1: rule__Union_type__UnionMembersAssignment_7 : ( rulecase_stmt ) ;
    public final void rule__Union_type__UnionMembersAssignment_7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13165:1: ( ( rulecase_stmt ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13166:1: ( rulecase_stmt )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13166:1: ( rulecase_stmt )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13167:1: rulecase_stmt
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionMembersCase_stmtParserRuleCall_7_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulecase_stmt_in_rule__Union_type__UnionMembersAssignment_726712);
            rulecase_stmt();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionMembersCase_stmtParserRuleCall_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Union_type__UnionMembersAssignment_7"


    // $ANTLR start "rule__Switch_type_spec_cont__KindAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13176:1: rule__Switch_type_spec_cont__KindAssignment_1_1 : ( rulechar_type ) ;
    public final void rule__Switch_type_spec_cont__KindAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13180:1: ( ( rulechar_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13181:1: ( rulechar_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13181:1: ( rulechar_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13182:1: rulechar_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindChar_typeEnumRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulechar_type_in_rule__Switch_type_spec_cont__KindAssignment_1_126743);
            rulechar_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindChar_typeEnumRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__KindAssignment_1_1"


    // $ANTLR start "rule__Switch_type_spec_cont__KindAssignment_2_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13191:1: rule__Switch_type_spec_cont__KindAssignment_2_1 : ( ruleboolean_type ) ;
    public final void rule__Switch_type_spec_cont__KindAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13195:1: ( ( ruleboolean_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13196:1: ( ruleboolean_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13196:1: ( ruleboolean_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13197:1: ruleboolean_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindBoolean_typeEnumRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleboolean_type_in_rule__Switch_type_spec_cont__KindAssignment_2_126774);
            ruleboolean_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindBoolean_typeEnumRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Switch_type_spec_cont__KindAssignment_2_1"


    // $ANTLR start "rule__Case_stmt__LabelAssignment_0_0_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13206:1: rule__Case_stmt__LabelAssignment_0_0_0_1 : ( ruleconst_exp ) ;
    public final void rule__Case_stmt__LabelAssignment_0_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13210:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13211:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13211:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13212:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_0_0_0_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_0_0_0_126805);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_0_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__LabelAssignment_0_0_0_1"


    // $ANTLR start "rule__Case_stmt__IsDefaultAssignment_0_0_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13221:1: rule__Case_stmt__IsDefaultAssignment_0_0_1_0 : ( ( 'default' ) ) ;
    public final void rule__Case_stmt__IsDefaultAssignment_0_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13225:1: ( ( ( 'default' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13226:1: ( ( 'default' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13226:1: ( ( 'default' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13227:1: ( 'default' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_0_0_1_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13228:1: ( 'default' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13229:1: 'default'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_0_0_1_0_0()); 
            }
            match(input,76,FollowSets001.FOLLOW_76_in_rule__Case_stmt__IsDefaultAssignment_0_0_1_026841); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_0_0_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_0_0_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__IsDefaultAssignment_0_0_1_0"


    // $ANTLR start "rule__Case_stmt__ContainedTypeAssignment_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13244:1: rule__Case_stmt__ContainedTypeAssignment_0_1 : ( rulearray_type_spec ) ;
    public final void rule__Case_stmt__ContainedTypeAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13248:1: ( ( rulearray_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13249:1: ( rulearray_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13249:1: ( rulearray_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13250:1: rulearray_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulearray_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_0_126880);
            rulearray_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__ContainedTypeAssignment_0_1"


    // $ANTLR start "rule__Case_stmt__LabelAssignment_1_0_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13259:1: rule__Case_stmt__LabelAssignment_1_0_0_1 : ( ruleconst_exp ) ;
    public final void rule__Case_stmt__LabelAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13263:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13264:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13264:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13265:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_1_0_0_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_1_0_0_126911);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__LabelAssignment_1_0_0_1"


    // $ANTLR start "rule__Case_stmt__IsDefaultAssignment_1_0_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13274:1: rule__Case_stmt__IsDefaultAssignment_1_0_1_0 : ( ( 'default' ) ) ;
    public final void rule__Case_stmt__IsDefaultAssignment_1_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13278:1: ( ( ( 'default' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13279:1: ( ( 'default' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13279:1: ( ( 'default' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13280:1: ( 'default' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_1_0_1_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13281:1: ( 'default' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13282:1: 'default'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_1_0_1_0_0()); 
            }
            match(input,76,FollowSets001.FOLLOW_76_in_rule__Case_stmt__IsDefaultAssignment_1_0_1_026947); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_1_0_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIsDefaultDefaultKeyword_1_0_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__IsDefaultAssignment_1_0_1_0"


    // $ANTLR start "rule__Case_stmt__ContainedTypeAssignment_1_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13297:1: rule__Case_stmt__ContainedTypeAssignment_1_1_0 : ( rulesimple_type_spec ) ;
    public final void rule__Case_stmt__ContainedTypeAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13301:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13302:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13302:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13303:1: rulesimple_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulesimple_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_1_1_026986);
            rulesimple_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__ContainedTypeAssignment_1_1_0"


    // $ANTLR start "rule__Case_stmt__SharedTypeAssignment_1_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13312:1: rule__Case_stmt__SharedTypeAssignment_1_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Case_stmt__SharedTypeAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13316:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13317:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13317:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13318:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13319:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13320:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Case_stmt__SharedTypeAssignment_1_1_127021); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__SharedTypeAssignment_1_1_1"


    // $ANTLR start "rule__Case_stmt__IdentifierAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13331:1: rule__Case_stmt__IdentifierAssignment_1_2 : ( RULE_ID ) ;
    public final void rule__Case_stmt__IdentifierAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13335:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13336:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13336:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13337:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Case_stmt__IdentifierAssignment_1_227056); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Case_stmt__IdentifierAssignment_1_2"


    // $ANTLR start "rule__Enum_type__IdentifierAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13346:1: rule__Enum_type__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Enum_type__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13350:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13351:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13351:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13352:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Enum_type__IdentifierAssignment_127087); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__IdentifierAssignment_1"


    // $ANTLR start "rule__Enum_type__MembersAssignment_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13361:1: rule__Enum_type__MembersAssignment_3 : ( ruleenum_member ) ;
    public final void rule__Enum_type__MembersAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13365:1: ( ( ruleenum_member ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13366:1: ( ruleenum_member )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13366:1: ( ruleenum_member )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13367:1: ruleenum_member
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_327118);
            ruleenum_member();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__MembersAssignment_3"


    // $ANTLR start "rule__Enum_type__MembersAssignment_4_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13376:1: rule__Enum_type__MembersAssignment_4_1 : ( ruleenum_member ) ;
    public final void rule__Enum_type__MembersAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13380:1: ( ( ruleenum_member ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13381:1: ( ruleenum_member )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13381:1: ( ruleenum_member )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13382:1: ruleenum_member
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_4_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_4_127149);
            ruleenum_member();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_type__MembersAssignment_4_1"


    // $ANTLR start "rule__Enum_member__IdentifierAssignment"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13391:1: rule__Enum_member__IdentifierAssignment : ( RULE_ID ) ;
    public final void rule__Enum_member__IdentifierAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13395:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13396:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13396:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13397:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEnum_memberAccess().getIdentifierIDTerminalRuleCall_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Enum_member__IdentifierAssignment27180); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEnum_memberAccess().getIdentifierIDTerminalRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Enum_member__IdentifierAssignment"


    // $ANTLR start "rule__Const_decl__ContainedTypeAssignment_1_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13406:1: rule__Const_decl__ContainedTypeAssignment_1_0 : ( ruleconst_type ) ;
    public final void rule__Const_decl__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13410:1: ( ( ruleconst_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13411:1: ( ruleconst_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13411:1: ( ruleconst_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13412:1: ruleconst_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getContainedTypeConst_typeParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_type_in_rule__Const_decl__ContainedTypeAssignment_1_027211);
            ruleconst_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getContainedTypeConst_typeParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__ContainedTypeAssignment_1_0"


    // $ANTLR start "rule__Const_decl__SharedTypeAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13421:1: rule__Const_decl__SharedTypeAssignment_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Const_decl__SharedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13425:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13426:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13426:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13427:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getSharedTypeAliasDefCrossReference_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13428:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13429:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getSharedTypeAliasDefIDTerminalRuleCall_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Const_decl__SharedTypeAssignment_1_127246); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getSharedTypeAliasDefIDTerminalRuleCall_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getSharedTypeAliasDefCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__SharedTypeAssignment_1_1"


    // $ANTLR start "rule__Const_decl__IdentifierAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13440:1: rule__Const_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Const_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13444:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13445:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13445:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13446:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Const_decl__IdentifierAssignment_227281); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__IdentifierAssignment_2"


    // $ANTLR start "rule__Const_decl__ConstValueAssignment_4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13455:1: rule__Const_decl__ConstValueAssignment_4 : ( ruleconst_exp ) ;
    public final void rule__Const_decl__ConstValueAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13459:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13460:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13460:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13461:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getConstValueConst_expParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Const_decl__ConstValueAssignment_427312);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getConstValueConst_expParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Const_decl__ConstValueAssignment_4"


    // $ANTLR start "rule__Sequence_type__ContainedTypeAssignment_2_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13470:1: rule__Sequence_type__ContainedTypeAssignment_2_0 : ( rulesimple_type_spec ) ;
    public final void rule__Sequence_type__ContainedTypeAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13474:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13475:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13475:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13476:1: rulesimple_type_spec
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getContainedTypeSimple_type_specParserRuleCall_2_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulesimple_type_spec_in_rule__Sequence_type__ContainedTypeAssignment_2_027343);
            rulesimple_type_spec();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getContainedTypeSimple_type_specParserRuleCall_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__ContainedTypeAssignment_2_0"


    // $ANTLR start "rule__Sequence_type__SharedTypeAssignment_2_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13485:1: rule__Sequence_type__SharedTypeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Sequence_type__SharedTypeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13489:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13490:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13490:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13491:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefCrossReference_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13492:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13493:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__Sequence_type__SharedTypeAssignment_2_127378); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefCrossReference_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__SharedTypeAssignment_2_1"


    // $ANTLR start "rule__Sequence_type__BoundAssignment_3_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13504:1: rule__Sequence_type__BoundAssignment_3_1 : ( ruleconst_exp ) ;
    public final void rule__Sequence_type__BoundAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13508:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13509:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13509:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13510:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getBoundConst_expParserRuleCall_3_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Sequence_type__BoundAssignment_3_127413);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getBoundConst_expParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sequence_type__BoundAssignment_3_1"


    // $ANTLR start "rule__Stringdef_type__BoundAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13519:1: rule__Stringdef_type__BoundAssignment_2 : ( ruleconst_exp ) ;
    public final void rule__Stringdef_type__BoundAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13523:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13524:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13524:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13525:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Stringdef_type__BoundAssignment_227444);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Stringdef_type__BoundAssignment_2"


    // $ANTLR start "rule__Wide_stringdef_type__BoundAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13534:1: rule__Wide_stringdef_type__BoundAssignment_2 : ( ruleconst_exp ) ;
    public final void rule__Wide_stringdef_type__BoundAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13538:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13539:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13539:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13540:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Wide_stringdef_type__BoundAssignment_227475);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wide_stringdef_type__BoundAssignment_2"


    // $ANTLR start "rule__Fixed_pt_type__DigitsAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13549:1: rule__Fixed_pt_type__DigitsAssignment_2 : ( ruleconst_exp ) ;
    public final void rule__Fixed_pt_type__DigitsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13553:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13554:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13554:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13555:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getDigitsConst_expParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__DigitsAssignment_227506);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getDigitsConst_expParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__DigitsAssignment_2"


    // $ANTLR start "rule__Fixed_pt_type__ScaleAssignment_4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13564:1: rule__Fixed_pt_type__ScaleAssignment_4 : ( ruleconst_exp ) ;
    public final void rule__Fixed_pt_type__ScaleAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13568:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13569:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13569:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13570:1: ruleconst_exp
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getScaleConst_expParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__ScaleAssignment_427537);
            ruleconst_exp();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getScaleConst_expParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Fixed_pt_type__ScaleAssignment_4"


    // $ANTLR start "rule__Floating_pt_type__KindAssignment_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13579:1: rule__Floating_pt_type__KindAssignment_0 : ( rulefloat_type ) ;
    public final void rule__Floating_pt_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13583:1: ( ( rulefloat_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13584:1: ( rulefloat_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13584:1: ( rulefloat_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13585:1: rulefloat_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getKindFloat_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulefloat_type_in_rule__Floating_pt_type__KindAssignment_027568);
            rulefloat_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getKindFloat_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Floating_pt_type__KindAssignment_0"


    // $ANTLR start "rule__Floating_pt_type__KindAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13594:1: rule__Floating_pt_type__KindAssignment_1 : ( ruledouble_type ) ;
    public final void rule__Floating_pt_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13598:1: ( ( ruledouble_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13599:1: ( ruledouble_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13599:1: ( ruledouble_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13600:1: ruledouble_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getKindDouble_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruledouble_type_in_rule__Floating_pt_type__KindAssignment_127599);
            ruledouble_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getKindDouble_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Floating_pt_type__KindAssignment_1"


    // $ANTLR start "rule__Floating_pt_type__KindAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13609:1: rule__Floating_pt_type__KindAssignment_2 : ( rulelongdouble_type ) ;
    public final void rule__Floating_pt_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13613:1: ( ( rulelongdouble_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13614:1: ( rulelongdouble_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13614:1: ( rulelongdouble_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13615:1: rulelongdouble_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getKindLongdouble_typeParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulelongdouble_type_in_rule__Floating_pt_type__KindAssignment_227630);
            rulelongdouble_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getKindLongdouble_typeParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Floating_pt_type__KindAssignment_2"


    // $ANTLR start "rule__Integer_type__KindAssignment_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13624:1: rule__Integer_type__KindAssignment_0 : ( ruleshort_type ) ;
    public final void rule__Integer_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13628:1: ( ( ruleshort_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13629:1: ( ruleshort_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13629:1: ( ruleshort_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13630:1: ruleshort_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindShort_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleshort_type_in_rule__Integer_type__KindAssignment_027661);
            ruleshort_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindShort_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Integer_type__KindAssignment_0"


    // $ANTLR start "rule__Integer_type__KindAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13639:1: rule__Integer_type__KindAssignment_1 : ( rulelong_type ) ;
    public final void rule__Integer_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13643:1: ( ( rulelong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13644:1: ( rulelong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13644:1: ( rulelong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13645:1: rulelong_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindLong_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulelong_type_in_rule__Integer_type__KindAssignment_127692);
            rulelong_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindLong_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Integer_type__KindAssignment_1"


    // $ANTLR start "rule__Integer_type__KindAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13654:1: rule__Integer_type__KindAssignment_2 : ( rulelonglong_type ) ;
    public final void rule__Integer_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13658:1: ( ( rulelonglong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13659:1: ( rulelonglong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13659:1: ( rulelonglong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13660:1: rulelonglong_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindLonglong_typeParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulelonglong_type_in_rule__Integer_type__KindAssignment_227723);
            rulelonglong_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindLonglong_typeParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Integer_type__KindAssignment_2"


    // $ANTLR start "rule__Integer_type__KindAssignment_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13669:1: rule__Integer_type__KindAssignment_3 : ( ruleushort_type ) ;
    public final void rule__Integer_type__KindAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13673:1: ( ( ruleushort_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13674:1: ( ruleushort_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13674:1: ( ruleushort_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13675:1: ruleushort_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindUshort_typeParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleushort_type_in_rule__Integer_type__KindAssignment_327754);
            ruleushort_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindUshort_typeParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Integer_type__KindAssignment_3"


    // $ANTLR start "rule__Integer_type__KindAssignment_4"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13684:1: rule__Integer_type__KindAssignment_4 : ( ruleulong_type ) ;
    public final void rule__Integer_type__KindAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13688:1: ( ( ruleulong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13689:1: ( ruleulong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13689:1: ( ruleulong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13690:1: ruleulong_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindUlong_typeParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleulong_type_in_rule__Integer_type__KindAssignment_427785);
            ruleulong_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindUlong_typeParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Integer_type__KindAssignment_4"


    // $ANTLR start "rule__Integer_type__KindAssignment_5"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13699:1: rule__Integer_type__KindAssignment_5 : ( ruleulonglong_type ) ;
    public final void rule__Integer_type__KindAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13703:1: ( ( ruleulonglong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13704:1: ( ruleulonglong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13704:1: ( ruleulonglong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13705:1: ruleulonglong_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindUlonglong_typeParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleulonglong_type_in_rule__Integer_type__KindAssignment_527816);
            ruleulonglong_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindUlonglong_typeParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Integer_type__KindAssignment_5"


    // $ANTLR start "rule__Charstr_type__KindAssignment_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13714:1: rule__Charstr_type__KindAssignment_0 : ( rulechar_type ) ;
    public final void rule__Charstr_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13718:1: ( ( rulechar_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13719:1: ( rulechar_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13719:1: ( rulechar_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13720:1: rulechar_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindChar_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulechar_type_in_rule__Charstr_type__KindAssignment_027847);
            rulechar_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindChar_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Charstr_type__KindAssignment_0"


    // $ANTLR start "rule__Charstr_type__KindAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13729:1: rule__Charstr_type__KindAssignment_1 : ( rulewide_char_type ) ;
    public final void rule__Charstr_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13733:1: ( ( rulewide_char_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13734:1: ( rulewide_char_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13734:1: ( rulewide_char_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13735:1: rulewide_char_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindWide_char_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulewide_char_type_in_rule__Charstr_type__KindAssignment_127878);
            rulewide_char_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindWide_char_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Charstr_type__KindAssignment_1"


    // $ANTLR start "rule__Charstr_type__KindAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13744:1: rule__Charstr_type__KindAssignment_2 : ( rulestring_type ) ;
    public final void rule__Charstr_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13748:1: ( ( rulestring_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13749:1: ( rulestring_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13749:1: ( rulestring_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13750:1: rulestring_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindString_typeEnumRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulestring_type_in_rule__Charstr_type__KindAssignment_227909);
            rulestring_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindString_typeEnumRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Charstr_type__KindAssignment_2"


    // $ANTLR start "rule__Charstr_type__KindAssignment_3"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13759:1: rule__Charstr_type__KindAssignment_3 : ( rulewide_string_type ) ;
    public final void rule__Charstr_type__KindAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13763:1: ( ( rulewide_string_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13764:1: ( rulewide_string_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13764:1: ( rulewide_string_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13765:1: rulewide_string_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindWide_string_typeEnumRuleCall_3_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulewide_string_type_in_rule__Charstr_type__KindAssignment_327940);
            rulewide_string_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindWide_string_typeEnumRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Charstr_type__KindAssignment_3"


    // $ANTLR start "rule__Other_type__KindAssignment_0"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13774:1: rule__Other_type__KindAssignment_0 : ( ruleboolean_type ) ;
    public final void rule__Other_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13778:1: ( ( ruleboolean_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13779:1: ( ruleboolean_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13779:1: ( ruleboolean_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13780:1: ruleboolean_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getKindBoolean_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleboolean_type_in_rule__Other_type__KindAssignment_027971);
            ruleboolean_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getKindBoolean_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Other_type__KindAssignment_0"


    // $ANTLR start "rule__Other_type__KindAssignment_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13789:1: rule__Other_type__KindAssignment_1 : ( ruleoctet_type ) ;
    public final void rule__Other_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13793:1: ( ( ruleoctet_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13794:1: ( ruleoctet_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13794:1: ( ruleoctet_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13795:1: ruleoctet_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getKindOctet_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleoctet_type_in_rule__Other_type__KindAssignment_128002);
            ruleoctet_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getKindOctet_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Other_type__KindAssignment_1"


    // $ANTLR start "rule__Other_type__KindAssignment_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13804:1: rule__Other_type__KindAssignment_2 : ( ruleany_type ) ;
    public final void rule__Other_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13808:1: ( ( ruleany_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13809:1: ( ruleany_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13809:1: ( ruleany_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13810:1: ruleany_type
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getKindAny_typeEnumRuleCall_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleany_type_in_rule__Other_type__KindAssignment_228033);
            ruleany_type();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getKindAny_typeEnumRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Other_type__KindAssignment_2"


    // $ANTLR start "rule__Or_expr__OperatorAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13819:1: rule__Or_expr__OperatorAssignment_1_1 : ( ( '|' ) ) ;
    public final void rule__Or_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13823:1: ( ( ( '|' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13824:1: ( ( '|' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13824:1: ( ( '|' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13825:1: ( '|' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13826:1: ( '|' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13827:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }
            match(input,77,FollowSets001.FOLLOW_77_in_rule__Or_expr__OperatorAssignment_1_128069); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__OperatorAssignment_1_1"


    // $ANTLR start "rule__Or_expr__RightAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13842:1: rule__Or_expr__RightAssignment_1_2 : ( rulexor_expr ) ;
    public final void rule__Or_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13846:1: ( ( rulexor_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13847:1: ( rulexor_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13847:1: ( rulexor_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13848:1: rulexor_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getRightXor_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulexor_expr_in_rule__Or_expr__RightAssignment_1_228108);
            rulexor_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getRightXor_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Or_expr__RightAssignment_1_2"


    // $ANTLR start "rule__Xor_expr__OperatorAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13857:1: rule__Xor_expr__OperatorAssignment_1_1 : ( ( '^' ) ) ;
    public final void rule__Xor_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13861:1: ( ( ( '^' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13862:1: ( ( '^' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13862:1: ( ( '^' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13863:1: ( '^' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13864:1: ( '^' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13865:1: '^'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }
            match(input,78,FollowSets001.FOLLOW_78_in_rule__Xor_expr__OperatorAssignment_1_128144); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__OperatorAssignment_1_1"


    // $ANTLR start "rule__Xor_expr__RightAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13880:1: rule__Xor_expr__RightAssignment_1_2 : ( ruleand_expr ) ;
    public final void rule__Xor_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13884:1: ( ( ruleand_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13885:1: ( ruleand_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13885:1: ( ruleand_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13886:1: ruleand_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getRightAnd_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleand_expr_in_rule__Xor_expr__RightAssignment_1_228183);
            ruleand_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getRightAnd_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Xor_expr__RightAssignment_1_2"


    // $ANTLR start "rule__And_expr__OperatorAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13895:1: rule__And_expr__OperatorAssignment_1_1 : ( ( '&' ) ) ;
    public final void rule__And_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13899:1: ( ( ( '&' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13900:1: ( ( '&' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13900:1: ( ( '&' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13901:1: ( '&' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13902:1: ( '&' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13903:1: '&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }
            match(input,79,FollowSets001.FOLLOW_79_in_rule__And_expr__OperatorAssignment_1_128219); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__OperatorAssignment_1_1"


    // $ANTLR start "rule__And_expr__RightAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13918:1: rule__And_expr__RightAssignment_1_2 : ( ruleshift_expr ) ;
    public final void rule__And_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13922:1: ( ( ruleshift_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13923:1: ( ruleshift_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13923:1: ( ruleshift_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13924:1: ruleshift_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getRightShift_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleshift_expr_in_rule__And_expr__RightAssignment_1_228258);
            ruleshift_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getRightShift_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__And_expr__RightAssignment_1_2"


    // $ANTLR start "rule__Shift_expr__OperatorAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13933:1: rule__Shift_expr__OperatorAssignment_1_1 : ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) ) ;
    public final void rule__Shift_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13937:1: ( ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13938:1: ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13938:1: ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13939:1: ( rule__Shift_expr__OperatorAlternatives_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getOperatorAlternatives_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13940:1: ( rule__Shift_expr__OperatorAlternatives_1_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13940:2: rule__Shift_expr__OperatorAlternatives_1_1_0
            {
            pushFollow(FollowSets001.FOLLOW_rule__Shift_expr__OperatorAlternatives_1_1_0_in_rule__Shift_expr__OperatorAssignment_1_128289);
            rule__Shift_expr__OperatorAlternatives_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getOperatorAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__OperatorAssignment_1_1"


    // $ANTLR start "rule__Shift_expr__RightAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13949:1: rule__Shift_expr__RightAssignment_1_2 : ( ruleadd_expr ) ;
    public final void rule__Shift_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13953:1: ( ( ruleadd_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13954:1: ( ruleadd_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13954:1: ( ruleadd_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13955:1: ruleadd_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getRightAdd_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleadd_expr_in_rule__Shift_expr__RightAssignment_1_228322);
            ruleadd_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getRightAdd_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Shift_expr__RightAssignment_1_2"


    // $ANTLR start "rule__Add_expr__OperatorAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13964:1: rule__Add_expr__OperatorAssignment_1_1 : ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) ) ;
    public final void rule__Add_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13968:1: ( ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13969:1: ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13969:1: ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13970:1: ( rule__Add_expr__OperatorAlternatives_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getOperatorAlternatives_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13971:1: ( rule__Add_expr__OperatorAlternatives_1_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13971:2: rule__Add_expr__OperatorAlternatives_1_1_0
            {
            pushFollow(FollowSets001.FOLLOW_rule__Add_expr__OperatorAlternatives_1_1_0_in_rule__Add_expr__OperatorAssignment_1_128353);
            rule__Add_expr__OperatorAlternatives_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getOperatorAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__OperatorAssignment_1_1"


    // $ANTLR start "rule__Add_expr__RightAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13980:1: rule__Add_expr__RightAssignment_1_2 : ( rulemult_expr ) ;
    public final void rule__Add_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13984:1: ( ( rulemult_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13985:1: ( rulemult_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13985:1: ( rulemult_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13986:1: rulemult_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getRightMult_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_rulemult_expr_in_rule__Add_expr__RightAssignment_1_228386);
            rulemult_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getRightMult_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Add_expr__RightAssignment_1_2"


    // $ANTLR start "rule__Mult_expr__OperatorAssignment_1_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13995:1: rule__Mult_expr__OperatorAssignment_1_1 : ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) ) ;
    public final void rule__Mult_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13999:1: ( ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14000:1: ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14000:1: ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14001:1: ( rule__Mult_expr__OperatorAlternatives_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getOperatorAlternatives_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14002:1: ( rule__Mult_expr__OperatorAlternatives_1_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14002:2: rule__Mult_expr__OperatorAlternatives_1_1_0
            {
            pushFollow(FollowSets001.FOLLOW_rule__Mult_expr__OperatorAlternatives_1_1_0_in_rule__Mult_expr__OperatorAssignment_1_128417);
            rule__Mult_expr__OperatorAlternatives_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getOperatorAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__OperatorAssignment_1_1"


    // $ANTLR start "rule__Mult_expr__RightAssignment_1_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14011:1: rule__Mult_expr__RightAssignment_1_2 : ( ruleunary_expr ) ;
    public final void rule__Mult_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14015:1: ( ( ruleunary_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14016:1: ( ruleunary_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14016:1: ( ruleunary_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14017:1: ruleunary_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getRightUnary_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleunary_expr_in_rule__Mult_expr__RightAssignment_1_228450);
            ruleunary_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getRightUnary_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Mult_expr__RightAssignment_1_2"


    // $ANTLR start "rule__Unary_expr__OperatorAssignment_0_1"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14026:1: rule__Unary_expr__OperatorAssignment_0_1 : ( ruleunary_operator ) ;
    public final void rule__Unary_expr__OperatorAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14030:1: ( ( ruleunary_operator ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14031:1: ( ruleunary_operator )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14031:1: ( ruleunary_operator )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14032:1: ruleunary_operator
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getOperatorUnary_operatorParserRuleCall_0_1_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleunary_operator_in_rule__Unary_expr__OperatorAssignment_0_128481);
            ruleunary_operator();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getOperatorUnary_operatorParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__OperatorAssignment_0_1"


    // $ANTLR start "rule__Unary_expr__ExpressionAssignment_0_2"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14041:1: rule__Unary_expr__ExpressionAssignment_0_2 : ( ruleprimary_expr ) ;
    public final void rule__Unary_expr__ExpressionAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14045:1: ( ( ruleprimary_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14046:1: ( ruleprimary_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14046:1: ( ruleprimary_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14047:1: ruleprimary_expr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getExpressionPrimary_exprParserRuleCall_0_2_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleprimary_expr_in_rule__Unary_expr__ExpressionAssignment_0_228512);
            ruleprimary_expr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getExpressionPrimary_exprParserRuleCall_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Unary_expr__ExpressionAssignment_0_2"


    // $ANTLR start "rule__ConstantDefRef__ConstantAssignment"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14056:1: rule__ConstantDefRef__ConstantAssignment : ( ( RULE_ID ) ) ;
    public final void rule__ConstantDefRef__ConstantAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14060:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14061:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14061:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14062:1: ( RULE_ID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstantDefRefAccess().getConstantConstantCrossReference_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14063:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14064:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getConstantDefRefAccess().getConstantConstantIDTerminalRuleCall_0_1()); 
            }
            match(input,RULE_ID,FollowSets001.FOLLOW_RULE_ID_in_rule__ConstantDefRef__ConstantAssignment28547); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstantDefRefAccess().getConstantConstantIDTerminalRuleCall_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getConstantDefRefAccess().getConstantConstantCrossReference_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConstantDefRef__ConstantAssignment"


    // $ANTLR start "rule__ValueExpression__ValueAssignment"
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14075:1: rule__ValueExpression__ValueAssignment : ( ruleliteral ) ;
    public final void rule__ValueExpression__ValueAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14079:1: ( ( ruleliteral ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14080:1: ( ruleliteral )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14080:1: ( ruleliteral )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14081:1: ruleliteral
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValueExpressionAccess().getValueLiteralParserRuleCall_0()); 
            }
            pushFollow(FollowSets001.FOLLOW_ruleliteral_in_rule__ValueExpression__ValueAssignment28582);
            ruleliteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValueExpressionAccess().getValueLiteralParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValueExpression__ValueAssignment"

    // $ANTLR start synpred30_InternalIDL
    public final void synpred30_InternalIDL_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2441:1: ( ( ( rule__Alias_type__Group_0__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2441:1: ( ( rule__Alias_type__Group_0__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2441:1: ( ( rule__Alias_type__Group_0__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2442:1: ( rule__Alias_type__Group_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getAlias_typeAccess().getGroup_0()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2443:1: ( rule__Alias_type__Group_0__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2443:2: rule__Alias_type__Group_0__0
        {
        pushFollow(FollowSets001.FOLLOW_rule__Alias_type__Group_0__0_in_synpred30_InternalIDL5216);
        rule__Alias_type__Group_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred30_InternalIDL

    // $ANTLR start synpred38_InternalIDL
    public final void synpred38_InternalIDL_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2586:1: ( ( ( rule__Member__Group_0__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2586:1: ( ( rule__Member__Group_0__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2586:1: ( ( rule__Member__Group_0__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2587:1: ( rule__Member__Group_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getMemberAccess().getGroup_0()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2588:1: ( rule__Member__Group_0__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2588:2: rule__Member__Group_0__0
        {
        pushFollow(FollowSets001.FOLLOW_rule__Member__Group_0__0_in_synpred38_InternalIDL5552);
        rule__Member__Group_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred38_InternalIDL

    // $ANTLR start synpred39_InternalIDL
    public final void synpred39_InternalIDL_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2592:6: ( ( ( rule__Member__Group_1__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2592:6: ( ( rule__Member__Group_1__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2592:6: ( ( rule__Member__Group_1__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2593:1: ( rule__Member__Group_1__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getMemberAccess().getGroup_1()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2594:1: ( rule__Member__Group_1__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2594:2: rule__Member__Group_1__0
        {
        pushFollow(FollowSets001.FOLLOW_rule__Member__Group_1__0_in_synpred39_InternalIDL5570);
        rule__Member__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred39_InternalIDL

    // $ANTLR start synpred45_InternalIDL
    public final void synpred45_InternalIDL_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2676:1: ( ( ( rule__Case_stmt__Group_0__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2676:1: ( ( rule__Case_stmt__Group_0__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2676:1: ( ( rule__Case_stmt__Group_0__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2677:1: ( rule__Case_stmt__Group_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getCase_stmtAccess().getGroup_0()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2678:1: ( rule__Case_stmt__Group_0__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2678:2: rule__Case_stmt__Group_0__0
        {
        pushFollow(FollowSets001.FOLLOW_rule__Case_stmt__Group_0__0_in_synpred45_InternalIDL5775);
        rule__Case_stmt__Group_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred45_InternalIDL

    // Delegated rules

    public final boolean synpred30_InternalIDL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred30_InternalIDL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred45_InternalIDL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred45_InternalIDL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred38_InternalIDL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred38_InternalIDL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred39_InternalIDL() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred39_InternalIDL_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }


    protected DFA1 dfa1 = new DFA1(this);
    protected DFA11 dfa11 = new DFA11(this);
    protected DFA14 dfa14 = new DFA14(this);
    protected DFA18 dfa18 = new DFA18(this);
    protected DFA25 dfa25 = new DFA25(this);
    protected DFA38 dfa38 = new DFA38(this);
    static final String DFA1_eotS =
        "\13\uffff";
    static final String DFA1_eofS =
        "\13\uffff";
    static final String DFA1_minS =
        "\1\36\3\uffff\2\57\1\13\1\uffff\1\35\2\uffff";
    static final String DFA1_maxS =
        "\1\103\3\uffff\2\57\1\13\1\uffff\1\60\2\uffff";
    static final String DFA1_acceptS =
        "\1\uffff\1\1\1\2\1\3\3\uffff\1\6\1\uffff\1\5\1\4";
    static final String DFA1_specialS =
        "\13\uffff}>";
    static final String[] DFA1_transitionS = {
            "\1\4\1\5\14\uffff\1\7\2\uffff\1\6\11\uffff\1\3\2\1\2\uffff\2\1\2\uffff\1\1\1\2",
            "",
            "",
            "",
            "\1\6",
            "\1\6",
            "\1\10",
            "",
            "\1\11\17\uffff\1\12\2\uffff\1\12",
            "",
            ""
    };

    static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS);
    static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS);
    static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS);
    static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS);
    static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS);
    static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS);
    static final short[][] DFA1_transition;

    static {
        int numStates = DFA1_transitionS.length;
        DFA1_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA1_transition[i] = DFA.unpackEncodedString(DFA1_transitionS[i]);
        }
    }

    class DFA1 extends DFA {

        public DFA1(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 1;
            this.eot = DFA1_eot;
            this.eof = DFA1_eof;
            this.min = DFA1_min;
            this.max = DFA1_max;
            this.accept = DFA1_accept;
            this.special = DFA1_special;
            this.transition = DFA1_transition;
        }
        public String getDescription() {
            return "1966:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );";
        }
    }
    static final String DFA11_eotS =
        "\31\uffff";
    static final String DFA11_eofS =
        "\21\uffff\1\27\7\uffff";
    static final String DFA11_minS =
        "\1\113\1\66\3\13\1\22\13\13\1\35\4\13\2\uffff\1\13";
    static final String DFA11_maxS =
        "\1\113\1\66\1\111\1\13\2\23\13\13\1\64\3\13\1\23\2\uffff\1\13";
    static final String DFA11_acceptS =
        "\26\uffff\1\1\1\2\1\uffff";
    static final String DFA11_specialS =
        "\31\uffff}>";
    static final String[] DFA11_transitionS = {
            "\1\1",
            "\1\2",
            "\1\20\4\uffff\1\6\1\7\1\3\1\4\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\55\uffff\1\5",
            "\1\21",
            "\1\21\5\uffff\1\23\1\uffff\1\22",
            "\1\24\1\25",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\27\26\uffff\1\26",
            "\1\21",
            "\1\21",
            "\1\21",
            "\1\21\7\uffff\1\30",
            "",
            "",
            "\1\21"
    };

    static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS);
    static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS);
    static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS);
    static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS);
    static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS);
    static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS);
    static final short[][] DFA11_transition;

    static {
        int numStates = DFA11_transitionS.length;
        DFA11_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]);
        }
    }

    class DFA11 extends DFA {

        public DFA11(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 11;
            this.eot = DFA11_eot;
            this.eof = DFA11_eof;
            this.min = DFA11_min;
            this.max = DFA11_max;
            this.accept = DFA11_accept;
            this.special = DFA11_special;
            this.transition = DFA11_transition;
        }
        public String getDescription() {
            return "2236:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );";
        }
    }
    static final String DFA14_eotS =
        "\30\uffff";
    static final String DFA14_eofS =
        "\20\uffff\1\26\7\uffff";
    static final String DFA14_minS =
        "\1\66\3\13\1\22\13\13\1\35\4\13\2\uffff\1\13";
    static final String DFA14_maxS =
        "\1\66\1\111\1\13\2\23\13\13\1\70\2\13\1\23\1\13\2\uffff\1\13";
    static final String DFA14_acceptS =
        "\25\uffff\1\1\1\2\1\uffff";
    static final String DFA14_specialS =
        "\30\uffff}>";
    static final String[] DFA14_transitionS = {
            "\1\1",
            "\1\17\4\uffff\1\5\1\6\1\2\1\3\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\55\uffff\1\4",
            "\1\20",
            "\1\20\5\uffff\1\22\1\uffff\1\21",
            "\1\24\1\23",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\20",
            "\1\26\31\uffff\2\25",
            "\1\20",
            "\1\20",
            "\1\20\7\uffff\1\27",
            "\1\20",
            "",
            "",
            "\1\20"
    };

    static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
    static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
    static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
    static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
    static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
    static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
    static final short[][] DFA14_transition;

    static {
        int numStates = DFA14_transitionS.length;
        DFA14_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
        }
    }

    class DFA14 extends DFA {

        public DFA14(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 14;
            this.eot = DFA14_eot;
            this.eof = DFA14_eof;
            this.min = DFA14_min;
            this.max = DFA14_max;
            this.accept = DFA14_accept;
            this.special = DFA14_special;
            this.transition = DFA14_transition;
        }
        public String getDescription() {
            return "2302:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );";
        }
    }
    static final String DFA18_eotS =
        "\13\uffff";
    static final String DFA18_eofS =
        "\6\uffff\2\10\3\uffff";
    static final String DFA18_minS =
        "\1\72\1\uffff\2\13\2\uffff\2\35\3\uffff";
    static final String DFA18_maxS =
        "\1\102\1\uffff\2\13\2\uffff\1\55\1\100\3\uffff";
    static final String DFA18_acceptS =
        "\1\uffff\1\1\2\uffff\1\4\1\5\2\uffff\1\6\1\2\1\3";
    static final String DFA18_specialS =
        "\13\uffff}>";
    static final String[] DFA18_transitionS = {
            "\1\5\1\1\2\uffff\1\2\1\3\2\uffff\1\4",
            "",
            "\1\6",
            "\1\7",
            "",
            "",
            "\1\10\17\uffff\1\11",
            "\1\10\42\uffff\1\12",
            "",
            "",
            ""
    };

    static final short[] DFA18_eot = DFA.unpackEncodedString(DFA18_eotS);
    static final short[] DFA18_eof = DFA.unpackEncodedString(DFA18_eofS);
    static final char[] DFA18_min = DFA.unpackEncodedStringToUnsignedChars(DFA18_minS);
    static final char[] DFA18_max = DFA.unpackEncodedStringToUnsignedChars(DFA18_maxS);
    static final short[] DFA18_accept = DFA.unpackEncodedString(DFA18_acceptS);
    static final short[] DFA18_special = DFA.unpackEncodedString(DFA18_specialS);
    static final short[][] DFA18_transition;

    static {
        int numStates = DFA18_transitionS.length;
        DFA18_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA18_transition[i] = DFA.unpackEncodedString(DFA18_transitionS[i]);
        }
    }

    class DFA18 extends DFA {

        public DFA18(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 18;
            this.eot = DFA18_eot;
            this.eof = DFA18_eof;
            this.min = DFA18_min;
            this.max = DFA18_max;
            this.accept = DFA18_accept;
            this.special = DFA18_special;
            this.transition = DFA18_transition;
        }
        public String getDescription() {
            return "2390:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );";
        }
    }
    static final String DFA25_eotS =
        "\25\uffff";
    static final String DFA25_eofS =
        "\25\uffff";
    static final String DFA25_minS =
        "\1\13\20\0\4\uffff";
    static final String DFA25_maxS =
        "\1\111\20\0\4\uffff";
    static final String DFA25_acceptS =
        "\21\uffff\1\3\1\1\1\2\1\4";
    static final String DFA25_specialS =
        "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\4\uffff}>";
    static final String[] DFA25_transitionS = {
            "\1\20\4\uffff\1\4\1\5\1\1\1\2\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\42\uffff\1\21\6\uffff\1\16\2\uffff\1\17\1\3",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA25_eot = DFA.unpackEncodedString(DFA25_eotS);
    static final short[] DFA25_eof = DFA.unpackEncodedString(DFA25_eofS);
    static final char[] DFA25_min = DFA.unpackEncodedStringToUnsignedChars(DFA25_minS);
    static final char[] DFA25_max = DFA.unpackEncodedStringToUnsignedChars(DFA25_maxS);
    static final short[] DFA25_accept = DFA.unpackEncodedString(DFA25_acceptS);
    static final short[] DFA25_special = DFA.unpackEncodedString(DFA25_specialS);
    static final short[][] DFA25_transition;

    static {
        int numStates = DFA25_transitionS.length;
        DFA25_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA25_transition[i] = DFA.unpackEncodedString(DFA25_transitionS[i]);
        }
    }

    class DFA25 extends DFA {

        public DFA25(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 25;
            this.eot = DFA25_eot;
            this.eof = DFA25_eof;
            this.min = DFA25_min;
            this.max = DFA25_max;
            this.accept = DFA25_accept;
            this.special = DFA25_special;
            this.transition = DFA25_transition;
        }
        public String getDescription() {
            return "2581:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA25_1 = input.LA(1);

                         
                        int index25_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA25_2 = input.LA(1);

                         
                        int index25_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA25_3 = input.LA(1);

                         
                        int index25_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA25_4 = input.LA(1);

                         
                        int index25_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA25_5 = input.LA(1);

                         
                        int index25_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA25_6 = input.LA(1);

                         
                        int index25_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA25_7 = input.LA(1);

                         
                        int index25_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_7);
                        if ( s>=0 ) return s;
                        break;
                    case 7 : 
                        int LA25_8 = input.LA(1);

                         
                        int index25_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_8);
                        if ( s>=0 ) return s;
                        break;
                    case 8 : 
                        int LA25_9 = input.LA(1);

                         
                        int index25_9 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_9);
                        if ( s>=0 ) return s;
                        break;
                    case 9 : 
                        int LA25_10 = input.LA(1);

                         
                        int index25_10 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_10);
                        if ( s>=0 ) return s;
                        break;
                    case 10 : 
                        int LA25_11 = input.LA(1);

                         
                        int index25_11 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_11);
                        if ( s>=0 ) return s;
                        break;
                    case 11 : 
                        int LA25_12 = input.LA(1);

                         
                        int index25_12 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_12);
                        if ( s>=0 ) return s;
                        break;
                    case 12 : 
                        int LA25_13 = input.LA(1);

                         
                        int index25_13 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_13);
                        if ( s>=0 ) return s;
                        break;
                    case 13 : 
                        int LA25_14 = input.LA(1);

                         
                        int index25_14 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_14);
                        if ( s>=0 ) return s;
                        break;
                    case 14 : 
                        int LA25_15 = input.LA(1);

                         
                        int index25_15 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (synpred39_InternalIDL()) ) {s = 19;}

                         
                        input.seek(index25_15);
                        if ( s>=0 ) return s;
                        break;
                    case 15 : 
                        int LA25_16 = input.LA(1);

                         
                        int index25_16 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred38_InternalIDL()) ) {s = 18;}

                        else if ( (true) ) {s = 20;}

                         
                        input.seek(index25_16);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 25, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA38_eotS =
        "\12\uffff";
    static final String DFA38_eofS =
        "\2\uffff\1\4\3\uffff\1\11\3\uffff";
    static final String DFA38_minS =
        "\1\22\1\uffff\1\13\1\22\2\uffff\1\13\3\uffff";
    static final String DFA38_maxS =
        "\1\111\1\uffff\1\107\1\23\2\uffff\1\107\3\uffff";
    static final String DFA38_acceptS =
        "\1\uffff\1\1\2\uffff\1\2\1\3\1\uffff\1\4\1\6\1\5";
    static final String DFA38_specialS =
        "\12\uffff}>";
    static final String[] DFA38_transitionS = {
            "\1\1\1\2\65\uffff\1\3",
            "",
            "\1\4\7\uffff\1\5\35\uffff\1\4\1\uffff\1\4\23\uffff\1\4",
            "\1\7\1\6",
            "",
            "",
            "\1\11\7\uffff\1\10\35\uffff\1\11\1\uffff\1\11\23\uffff\1\11",
            "",
            "",
            ""
    };

    static final short[] DFA38_eot = DFA.unpackEncodedString(DFA38_eotS);
    static final short[] DFA38_eof = DFA.unpackEncodedString(DFA38_eofS);
    static final char[] DFA38_min = DFA.unpackEncodedStringToUnsignedChars(DFA38_minS);
    static final char[] DFA38_max = DFA.unpackEncodedStringToUnsignedChars(DFA38_maxS);
    static final short[] DFA38_accept = DFA.unpackEncodedString(DFA38_acceptS);
    static final short[] DFA38_special = DFA.unpackEncodedString(DFA38_specialS);
    static final short[][] DFA38_transition;

    static {
        int numStates = DFA38_transitionS.length;
        DFA38_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA38_transition[i] = DFA.unpackEncodedString(DFA38_transitionS[i]);
        }
    }

    class DFA38 extends DFA {

        public DFA38(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 38;
            this.eot = DFA38_eot;
            this.eof = DFA38_eof;
            this.min = DFA38_min;
            this.max = DFA38_max;
            this.accept = DFA38_accept;
            this.special = DFA38_special;
            this.transition = DFA38_transition;
        }
        public String getDescription() {
            return "2921:1: rule__Integer_type__Alternatives : ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) );";
        }
    }
 

    
    private static class FollowSets000 {
        public static final BitSet FOLLOW_rulespecification_in_entryRulespecification67 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulespecification74 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__0_in_rulespecification100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinclude_decl_in_entryRuleinclude_decl127 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinclude_decl134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Include_decl__Group__0_in_ruleinclude_decl160 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledefinition_in_entryRuledefinition187 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuledefinition194 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Alternatives_in_ruledefinition220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemodule_in_entryRulemodule247 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulemodule254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__0_in_rulemodule280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_decl_in_entryRuleinterface_decl307 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinterface_decl314 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__0_in_ruleinterface_decl340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_fwd_in_entryRuleinterface_fwd367 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinterface_fwd374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__0_in_ruleinterface_fwd400 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexport_in_entryRuleexport427 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleexport434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Alternatives_in_ruleexport460 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_decl_in_entryRuleop_decl487 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleop_decl494 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__0_in_ruleop_decl520 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_type_spec_in_entryRuleop_type_spec547 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleop_type_spec554 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Alternatives_in_ruleop_type_spec580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_decl_in_entryRuleparam_decl607 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleparam_decl614 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__0_in_ruleparam_decl640 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_decl_in_entryRuleattr_decl667 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleattr_decl674 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_decl__Alternatives_in_ruleattr_decl700 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulereadonly_attr_spec_in_entryRulereadonly_attr_spec727 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulereadonly_attr_spec734 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Alternatives_in_rulereadonly_attr_spec760 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_spec_in_entryRuleattr_spec787 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleattr_spec794 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_in_ruleattr_spec820 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexcept_decl_in_entryRuleexcept_decl847 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleexcept_decl854 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__0_in_ruleexcept_decl880 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletype_decl_in_entryRuletype_decl907 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuletype_decl914 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Alternatives_in_ruletype_decl940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulealias_type_in_entryRulealias_type967 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulealias_type974 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Alternatives_in_rulealias_type1000 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_entryRulearray_type_spec1027 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulearray_type_spec1034 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__0_in_rulearray_type_spec1060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_entryRulesimple_type_spec1087 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulesimple_type_spec1094 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Simple_type_spec__Alternatives_in_rulesimple_type_spec1120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_entryRulebase_type_spec1147 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulebase_type_spec1154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Base_type_spec__Alternatives_in_rulebase_type_spec1180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletemplate_type_spec_in_entryRuletemplate_type_spec1207 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuletemplate_type_spec1214 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Template_type_spec__Alternatives_in_ruletemplate_type_spec1240 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestruct_type_in_entryRulestruct_type1269 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulestruct_type1276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__0_in_rulestruct_type1302 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemember_in_entryRulemember1329 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulemember1336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Alternatives_in_rulemember1362 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunion_type_in_entryRuleunion_type1389 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleunion_type1396 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__0_in_ruleunion_type1422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleswitch_type_spec_cont_in_entryRuleswitch_type_spec_cont1449 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleswitch_type_spec_cont1456 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Alternatives_in_ruleswitch_type_spec_cont1482 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecase_stmt_in_entryRulecase_stmt1509 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulecase_stmt1516 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_in_rulecase_stmt1542 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_type_in_entryRuleenum_type1569 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleenum_type1576 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__0_in_ruleenum_type1602 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_member_in_entryRuleenum_member1629 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleenum_member1636 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_member__IdentifierAssignment_in_ruleenum_member1662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstr_forward_decl_in_entryRuleconstr_forward_decl1689 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconstr_forward_decl1696 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Alternatives_in_ruleconstr_forward_decl1722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_decl_in_entryRuleconst_decl1749 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconst_decl1756 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__0_in_ruleconst_decl1782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_type_in_entryRuleconst_type1809 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconst_type1816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_type__Alternatives_in_ruleconst_type1842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimitive_def_in_entryRuleprimitive_def1869 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleprimitive_def1876 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primitive_def__Alternatives_in_ruleprimitive_def1902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesequence_type_in_entryRulesequence_type1929 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulesequence_type1936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__0_in_rulesequence_type1962 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestringdef_type_in_entryRulestringdef_type1989 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulestringdef_type1996 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__0_in_rulestringdef_type2022 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_stringdef_type_in_entryRulewide_stringdef_type2049 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulewide_stringdef_type2056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__0_in_rulewide_stringdef_type2082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_type_in_entryRulefixed_pt_type2109 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulefixed_pt_type2116 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__0_in_rulefixed_pt_type2142 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefloating_pt_type_in_entryRulefloating_pt_type2169 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulefloating_pt_type2176 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__Alternatives_in_rulefloating_pt_type2202 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelongdouble_type_in_entryRulelongdouble_type2229 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulelongdouble_type2236 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__0_in_rulelongdouble_type2262 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinteger_type_in_entryRuleinteger_type2289 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinteger_type2296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__Alternatives_in_ruleinteger_type2322 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelonglong_type_in_entryRulelonglong_type2349 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulelonglong_type2356 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__0_in_rulelonglong_type2382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleushort_type_in_entryRuleushort_type2409 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleushort_type2416 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__0_in_ruleushort_type2442 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulong_type_in_entryRuleulong_type2469 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleulong_type2476 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__0_in_ruleulong_type2502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulonglong_type_in_entryRuleulonglong_type2529 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleulonglong_type2536 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__0_in_ruleulonglong_type2562 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecharstr_type_in_entryRulecharstr_type2589 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulecharstr_type2596 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__Alternatives_in_rulecharstr_type2622 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleother_type_in_entryRuleother_type2649 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleother_type2656 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__Alternatives_in_ruleother_type2682 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_const_type_in_entryRulefixed_pt_const_type2709 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulefixed_pt_const_type2716 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__0_in_rulefixed_pt_const_type2742 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_entryRuleconst_exp2769 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconst_exp2776 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleor_expr_in_ruleconst_exp2802 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleor_expr_in_entryRuleor_expr2828 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleor_expr2835 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__0_in_ruleor_expr2861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulexor_expr_in_entryRulexor_expr2888 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulexor_expr2895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__0_in_rulexor_expr2921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleand_expr_in_entryRuleand_expr2948 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleand_expr2955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group__0_in_ruleand_expr2981 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshift_expr_in_entryRuleshift_expr3008 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleshift_expr3015 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__0_in_ruleshift_expr3041 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleadd_expr_in_entryRuleadd_expr3068 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleadd_expr3075 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__0_in_ruleadd_expr3101 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemult_expr_in_entryRulemult_expr3128 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulemult_expr3135 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__0_in_rulemult_expr3161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_expr_in_entryRuleunary_expr3188 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleunary_expr3195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Alternatives_in_ruleunary_expr3221 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_operator_in_entryRuleunary_operator3248 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleunary_operator3255 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_operator__Alternatives_in_ruleunary_operator3281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimary_expr_in_entryRuleprimary_expr3308 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleprimary_expr3315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Alternatives_in_ruleprimary_expr3341 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstantDefRef_in_entryRuleconstantDefRef3368 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconstantDefRef3375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ConstantDefRef__ConstantAssignment_in_ruleconstantDefRef3401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulevalueExpression_in_entryRulevalueExpression3428 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulevalueExpression3435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ValueExpression__ValueAssignment_in_rulevalueExpression3461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleliteral_in_entryRuleliteral3488 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleliteral3495 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Literal__Alternatives_in_ruleliteral3521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_attribute__Alternatives_in_ruleparam_attribute3558 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_16_in_rulefloat_type3595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_17_in_ruledouble_type3634 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_18_in_ruleshort_type3673 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rulelong_type3712 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_20_in_rulechar_type3751 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_21_in_rulewide_char_type3790 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_22_in_rulestring_type3829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_23_in_rulewide_string_type3868 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_24_in_ruleboolean_type3907 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_25_in_ruleoctet_type3946 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_ruleany_type3985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_ruleobject_type4024 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_28_in_rulevoid_type4063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__0_in_rule__Definition__Alternatives4100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__0_in_rule__Definition__Alternatives4118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__0_in_rule__Definition__Alternatives4136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__0_in_rule__Definition__Alternatives4154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__0_in_rule__Definition__Alternatives4172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__0_in_rule__Definition__Alternatives4190 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__ContainsAssignment_3_0_in_rule__Module__Alternatives_34223 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Module__Alternatives_34242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__IsAbstractAssignment_0_0_in_rule__Interface_decl__Alternatives_04276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__IsCustomAssignment_0_1_in_rule__Interface_decl__Alternatives_04294 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__ContainsAssignment_5_0_in_rule__Interface_decl__Alternatives_54327 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Interface_decl__Alternatives_54346 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_30_in_rule__Interface_fwd__Alternatives_04381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__Interface_fwd__Alternatives_04401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_0__0_in_rule__Export__Alternatives4435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_1__0_in_rule__Export__Alternatives4453 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_2__0_in_rule__Export__Alternatives4471 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_3__0_in_rule__Export__Alternatives4489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_4__0_in_rule__Export__Alternatives4507 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ContainedTypeAssignment_1_0_in_rule__Op_decl__Alternatives_14540 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__SharedTypeAssignment_1_1_in_rule__Op_decl__Alternatives_14558 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Op_type_spec__Alternatives4591 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__0_in_rule__Op_type_spec__Alternatives4608 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__ContainedTypeAssignment_1_0_in_rule__Param_decl__Alternatives_14641 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__SharedTypeAssignment_1_1_in_rule__Param_decl__Alternatives_14659 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulereadonly_attr_spec_in_rule__Attr_decl__Alternatives4692 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_spec_in_rule__Attr_decl__Alternatives4709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__0_in_rule__Readonly_attr_spec__Alternatives4741 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__0_in_rule__Readonly_attr_spec__Alternatives4759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0_in_rule__Readonly_attr_spec__Alternatives_0_24792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1_in_rule__Readonly_attr_spec__Alternatives_0_24810 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0_in_rule__Readonly_attr_spec__Alternatives_1_24843 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1_in_rule__Readonly_attr_spec__Alternatives_1_24861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__0_in_rule__Attr_spec__Alternatives4894 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__0_in_rule__Attr_spec__Alternatives4912 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__ContainedTypeAssignment_0_1_0_in_rule__Attr_spec__Alternatives_0_14945 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SharedTypeAssignment_0_1_1_in_rule__Attr_spec__Alternatives_0_14963 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__0_in_rule__Attr_spec__Alternatives_0_34996 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__0_in_rule__Attr_spec__Alternatives_0_35014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__ContainedTypeAssignment_1_1_0_in_rule__Attr_spec__Alternatives_1_15047 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SharedTypeAssignment_1_1_1_in_rule__Attr_spec__Alternatives_1_15065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulealias_type_in_rule__Type_decl__Alternatives5098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestruct_type_in_rule__Type_decl__Alternatives5115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunion_type_in_rule__Type_decl__Alternatives5132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_type_in_rule__Type_decl__Alternatives5149 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__0_in_rule__Type_decl__Alternatives5166 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstr_forward_decl_in_rule__Type_decl__Alternatives5184 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__0_in_rule__Alias_type__Alternatives5216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__0_in_rule__Alias_type__Alternatives5234 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__ContainedTypeAssignment_1_1_0_in_rule__Alias_type__Alternatives_1_15267 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__SharedTypeAssignment_1_1_1_in_rule__Alias_type__Alternatives_1_15285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__ContainedTypeAssignment_0_0_in_rule__Array_type_spec__Alternatives_05318 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__SharedTypeAssignment_0_1_in_rule__Array_type_spec__Alternatives_05336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Simple_type_spec__Alternatives5369 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletemplate_type_spec_in_rule__Simple_type_spec__Alternatives5386 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimitive_def_in_rule__Base_type_spec__Alternatives5418 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Base_type_spec__KindAssignment_1_in_rule__Base_type_spec__Alternatives5435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesequence_type_in_rule__Template_type_spec__Alternatives5468 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestringdef_type_in_rule__Template_type_spec__Alternatives5485 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_stringdef_type_in_rule__Template_type_spec__Alternatives5502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_type_in_rule__Template_type_spec__Alternatives5519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__0_in_rule__Member__Alternatives5552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__0_in_rule__Member__Alternatives5570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__0_in_rule__Member__Alternatives5588 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__0_in_rule__Member__Alternatives5606 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__ContainedDiscrimAssignment_4_0_in_rule__Union_type__Alternatives_45639 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__SharedDiscrimAssignment_4_1_in_rule__Union_type__Alternatives_45657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinteger_type_in_rule__Switch_type_spec_cont__Alternatives5690 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__0_in_rule__Switch_type_spec_cont__Alternatives5707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__0_in_rule__Switch_type_spec_cont__Alternatives5725 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_type_in_rule__Switch_type_spec_cont__Alternatives5743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__0_in_rule__Case_stmt__Alternatives5775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__0_in_rule__Case_stmt__Alternatives5793 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__0_in_rule__Case_stmt__Alternatives_0_05826 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__0_in_rule__Case_stmt__Alternatives_0_05844 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__0_in_rule__Case_stmt__Alternatives_1_05877 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__0_in_rule__Case_stmt__Alternatives_1_05895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__ContainedTypeAssignment_1_1_0_in_rule__Case_stmt__Alternatives_1_15928 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__SharedTypeAssignment_1_1_1_in_rule__Case_stmt__Alternatives_1_15946 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__0_in_rule__Constr_forward_decl__Alternatives5979 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__0_in_rule__Constr_forward_decl__Alternatives5997 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__ContainedTypeAssignment_1_0_in_rule__Const_decl__Alternatives_16030 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__SharedTypeAssignment_1_1_in_rule__Const_decl__Alternatives_16048 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimitive_def_in_rule__Const_type__Alternatives6081 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestringdef_type_in_rule__Const_type__Alternatives6098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_stringdef_type_in_rule__Const_type__Alternatives6115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_const_type_in_rule__Const_type__Alternatives6132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinteger_type_in_rule__Primitive_def__Alternatives6164 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefloating_pt_type_in_rule__Primitive_def__Alternatives6181 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecharstr_type_in_rule__Primitive_def__Alternatives6198 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleother_type_in_rule__Primitive_def__Alternatives6215 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__ContainedTypeAssignment_2_0_in_rule__Sequence_type__Alternatives_26247 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__SharedTypeAssignment_2_1_in_rule__Sequence_type__Alternatives_26265 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__KindAssignment_0_in_rule__Floating_pt_type__Alternatives6298 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__KindAssignment_1_in_rule__Floating_pt_type__Alternatives6316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__KindAssignment_2_in_rule__Floating_pt_type__Alternatives6334 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_0_in_rule__Integer_type__Alternatives6367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_1_in_rule__Integer_type__Alternatives6385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_2_in_rule__Integer_type__Alternatives6403 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_3_in_rule__Integer_type__Alternatives6421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_4_in_rule__Integer_type__Alternatives6439 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_5_in_rule__Integer_type__Alternatives6457 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_0_in_rule__Charstr_type__Alternatives6490 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_1_in_rule__Charstr_type__Alternatives6508 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_2_in_rule__Charstr_type__Alternatives6526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_3_in_rule__Charstr_type__Alternatives6544 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__KindAssignment_0_in_rule__Other_type__Alternatives6577 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__KindAssignment_1_in_rule__Other_type__Alternatives6595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__KindAssignment_2_in_rule__Other_type__Alternatives6613 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_32_in_rule__Shift_expr__OperatorAlternatives_1_1_06647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_33_in_rule__Shift_expr__OperatorAlternatives_1_1_06667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__Add_expr__OperatorAlternatives_1_1_06702 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_35_in_rule__Add_expr__OperatorAlternatives_1_1_06722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_36_in_rule__Mult_expr__OperatorAlternatives_1_1_06757 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_37_in_rule__Mult_expr__OperatorAlternatives_1_1_06777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_38_in_rule__Mult_expr__OperatorAlternatives_1_1_06797 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__0_in_rule__Unary_expr__Alternatives6831 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimary_expr_in_rule__Unary_expr__Alternatives6849 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_35_in_rule__Unary_operator__Alternatives6882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__Unary_operator__Alternatives6902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_39_in_rule__Unary_operator__Alternatives6922 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstantDefRef_in_rule__Primary_expr__Alternatives6956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulevalueExpression_in_rule__Primary_expr__Alternatives6973 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__0_in_rule__Primary_expr__Alternatives6990 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__Literal__Alternatives7023 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Literal__Alternatives7040 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_HEX_LITERAL_in_rule__Literal__Alternatives7057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_WIDE_STRING_LITERAL_in_rule__Literal__Alternatives7074 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_FIXED_PT_LITERAL_in_rule__Literal__Alternatives7091 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_FLOATING_PT_LITERAL_in_rule__Literal__Alternatives7108 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_BOOLEAN_LITERAL_in_rule__Literal__Alternatives7125 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_40_in_rule__Param_attribute__Alternatives7158 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_41_in_rule__Param_attribute__Alternatives7179 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_42_in_rule__Param_attribute__Alternatives7200 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__0__Impl_in_rule__Specification__Group__07233 = new BitSet(new long[]{0xCE009800C0000000L,0x000000000000000CL});
        public static final BitSet FOLLOW_rule__Specification__Group__1_in_rule__Specification__Group__07236 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__1__Impl_in_rule__Specification__Group__17294 = new BitSet(new long[]{0xCE009800C0000000L,0x000000000000000CL});
        public static final BitSet FOLLOW_rule__Specification__Group__2_in_rule__Specification__Group__17297 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__IncludesAssignment_1_in_rule__Specification__Group__1__Impl7324 = new BitSet(new long[]{0x0000080000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__2__Impl_in_rule__Specification__Group__27355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__ContainsAssignment_2_in_rule__Specification__Group__2__Impl7382 = new BitSet(new long[]{0xCE009000C0000002L,0x000000000000000CL});
        public static final BitSet FOLLOW_rule__Include_decl__Group__0__Impl_in_rule__Include_decl__Group__07419 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Include_decl__Group__1_in_rule__Include_decl__Group__07422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__Include_decl__Group__0__Impl7450 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Include_decl__Group__1__Impl_in_rule__Include_decl__Group__17481 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Include_decl__ImportURIAssignment_1_in_rule__Include_decl__Group__1__Impl7508 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__0__Impl_in_rule__Definition__Group_0__07542 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__1_in_rule__Definition__Group_0__07545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletype_decl_in_rule__Definition__Group_0__0__Impl7572 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__1__Impl_in_rule__Definition__Group_0__17601 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_0__1__Impl7629 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__0__Impl_in_rule__Definition__Group_1__07664 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__1_in_rule__Definition__Group_1__07667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_decl_in_rule__Definition__Group_1__0__Impl7694 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__1__Impl_in_rule__Definition__Group_1__17723 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_1__1__Impl7751 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__0__Impl_in_rule__Definition__Group_2__07786 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__1_in_rule__Definition__Group_2__07789 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexcept_decl_in_rule__Definition__Group_2__0__Impl7816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__1__Impl_in_rule__Definition__Group_2__17845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_2__1__Impl7873 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__0__Impl_in_rule__Definition__Group_3__07908 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__1_in_rule__Definition__Group_3__07911 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_decl_in_rule__Definition__Group_3__0__Impl7938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__1__Impl_in_rule__Definition__Group_3__17967 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_3__1__Impl7995 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__0__Impl_in_rule__Definition__Group_4__08030 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__1_in_rule__Definition__Group_4__08033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_fwd_in_rule__Definition__Group_4__0__Impl8060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__1__Impl_in_rule__Definition__Group_4__18089 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_4__1__Impl8117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__0__Impl_in_rule__Definition__Group_5__08152 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__1_in_rule__Definition__Group_5__08155 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemodule_in_rule__Definition__Group_5__0__Impl8182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__1__Impl_in_rule__Definition__Group_5__18211 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_5__1__Impl8239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__08274 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Module__Group__1_in_rule__Module__Group__08277 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__Module__Group__0__Impl8305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__18336 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Module__Group__2_in_rule__Module__Group__18339 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__IdentifierAssignment_1_in_rule__Module__Group__1__Impl8366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__28396 = new BitSet(new long[]{0xCE00D000E0000000L,0x000000000000000CL});
        public static final BitSet FOLLOW_rule__Module__Group__3_in_rule__Module__Group__28399 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Module__Group__2__Impl8427 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__38458 = new BitSet(new long[]{0xCE00D000E0000000L,0x000000000000000CL});
        public static final BitSet FOLLOW_rule__Module__Group__4_in_rule__Module__Group__38461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Alternatives_3_in_rule__Module__Group__3__Impl8488 = new BitSet(new long[]{0xCE009000E0000002L,0x000000000000000CL});
        public static final BitSet FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__48519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Module__Group__4__Impl8547 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__0__Impl_in_rule__Interface_decl__Group__08588 = new BitSet(new long[]{0x00008000C0000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__1_in_rule__Interface_decl__Group__08591 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Alternatives_0_in_rule__Interface_decl__Group__0__Impl8618 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__1__Impl_in_rule__Interface_decl__Group__18649 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__2_in_rule__Interface_decl__Group__18652 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__Interface_decl__Group__1__Impl8680 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__2__Impl_in_rule__Interface_decl__Group__28711 = new BitSet(new long[]{0x0001200000000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__3_in_rule__Interface_decl__Group__28714 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__IdentifierAssignment_2_in_rule__Interface_decl__Group__2__Impl8741 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__3__Impl_in_rule__Interface_decl__Group__38771 = new BitSet(new long[]{0x0001200000000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__4_in_rule__Interface_decl__Group__38774 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__0_in_rule__Interface_decl__Group__3__Impl8801 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__4__Impl_in_rule__Interface_decl__Group__48832 = new BitSet(new long[]{0xCE4040003FFF0800L,0x0000000000000E0CL});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__5_in_rule__Interface_decl__Group__48835 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Interface_decl__Group__4__Impl8863 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__5__Impl_in_rule__Interface_decl__Group__58894 = new BitSet(new long[]{0xCE4040003FFF0800L,0x0000000000000E0CL});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__6_in_rule__Interface_decl__Group__58897 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Alternatives_5_in_rule__Interface_decl__Group__5__Impl8924 = new BitSet(new long[]{0xCE4000003FFF0802L,0x0000000000000E0CL});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__6__Impl_in_rule__Interface_decl__Group__68955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Interface_decl__Group__6__Impl8983 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__0__Impl_in_rule__Interface_decl__Group_3__09028 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__1_in_rule__Interface_decl__Group_3__09031 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Interface_decl__Group_3__0__Impl9059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__1__Impl_in_rule__Interface_decl__Group_3__19090 = new BitSet(new long[]{0x0002000000000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__2_in_rule__Interface_decl__Group_3__19093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_1_in_rule__Interface_decl__Group_3__1__Impl9120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__2__Impl_in_rule__Interface_decl__Group_3__29150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__0_in_rule__Interface_decl__Group_3__2__Impl9177 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__0__Impl_in_rule__Interface_decl__Group_3_2__09214 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__1_in_rule__Interface_decl__Group_3_2__09217 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Interface_decl__Group_3_2__0__Impl9245 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__1__Impl_in_rule__Interface_decl__Group_3_2__19276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_2_1_in_rule__Interface_decl__Group_3_2__1__Impl9303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__0__Impl_in_rule__Interface_fwd__Group__09337 = new BitSet(new long[]{0x00008000C0000000L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__1_in_rule__Interface_fwd__Group__09340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Alternatives_0_in_rule__Interface_fwd__Group__0__Impl9367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__1__Impl_in_rule__Interface_fwd__Group__19398 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__2_in_rule__Interface_fwd__Group__19401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__Interface_fwd__Group__1__Impl9429 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__2__Impl_in_rule__Interface_fwd__Group__29460 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__IdentifierAssignment_2_in_rule__Interface_fwd__Group__2__Impl9487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_0__0__Impl_in_rule__Export__Group_0__09523 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_0__1_in_rule__Export__Group_0__09526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletype_decl_in_rule__Export__Group_0__0__Impl9553 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_0__1__Impl_in_rule__Export__Group_0__19582 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_0__1__Impl9610 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_1__0__Impl_in_rule__Export__Group_1__09645 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_1__1_in_rule__Export__Group_1__09648 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_decl_in_rule__Export__Group_1__0__Impl9675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_1__1__Impl_in_rule__Export__Group_1__19704 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_1__1__Impl9732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_2__0__Impl_in_rule__Export__Group_2__09767 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_2__1_in_rule__Export__Group_2__09770 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexcept_decl_in_rule__Export__Group_2__0__Impl9797 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_2__1__Impl_in_rule__Export__Group_2__19826 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_2__1__Impl9854 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_3__0__Impl_in_rule__Export__Group_3__09889 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_3__1_in_rule__Export__Group_3__09892 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_decl_in_rule__Export__Group_3__0__Impl9919 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_3__1__Impl_in_rule__Export__Group_3__19948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_3__1__Impl9976 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_4__0__Impl_in_rule__Export__Group_4__010011 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_4__1_in_rule__Export__Group_4__010014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_decl_in_rule__Export__Group_4__0__Impl10041 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_4__1__Impl_in_rule__Export__Group_4__110070 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_4__1__Impl10098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__0__Impl_in_rule__Op_decl__Group__010133 = new BitSet(new long[]{0xCE4000001FFF0800L,0x0000000000000E0CL});
        public static final BitSet FOLLOW_rule__Op_decl__Group__1_in_rule__Op_decl__Group__010136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__IsOnewayAssignment_0_in_rule__Op_decl__Group__0__Impl10163 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__1__Impl_in_rule__Op_decl__Group__110194 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__2_in_rule__Op_decl__Group__110197 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Alternatives_1_in_rule__Op_decl__Group__1__Impl10224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__2__Impl_in_rule__Op_decl__Group__210254 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__3_in_rule__Op_decl__Group__210257 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__IdentifierAssignment_2_in_rule__Op_decl__Group__2__Impl10284 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__3__Impl_in_rule__Op_decl__Group__310314 = new BitSet(new long[]{0x0008070000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__4_in_rule__Op_decl__Group__310317 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Op_decl__Group__3__Impl10345 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__4__Impl_in_rule__Op_decl__Group__410376 = new BitSet(new long[]{0x0008070000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__5_in_rule__Op_decl__Group__410379 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__0_in_rule__Op_decl__Group__4__Impl10406 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__5__Impl_in_rule__Op_decl__Group__510437 = new BitSet(new long[]{0x0030000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__6_in_rule__Op_decl__Group__510440 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Op_decl__Group__5__Impl10468 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__6__Impl_in_rule__Op_decl__Group__610499 = new BitSet(new long[]{0x0030000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__7_in_rule__Op_decl__Group__610502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__0_in_rule__Op_decl__Group__6__Impl10529 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__7__Impl_in_rule__Op_decl__Group__710560 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__0_in_rule__Op_decl__Group__7__Impl10587 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__0__Impl_in_rule__Op_decl__Group_4__010634 = new BitSet(new long[]{0x0002000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__1_in_rule__Op_decl__Group_4__010637 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ParametersAssignment_4_0_in_rule__Op_decl__Group_4__0__Impl10664 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__1__Impl_in_rule__Op_decl__Group_4__110694 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__0_in_rule__Op_decl__Group_4__1__Impl10721 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__0__Impl_in_rule__Op_decl__Group_4_1__010756 = new BitSet(new long[]{0x0000070000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__1_in_rule__Op_decl__Group_4_1__010759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Op_decl__Group_4_1__0__Impl10787 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__1__Impl_in_rule__Op_decl__Group_4_1__110818 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ParametersAssignment_4_1_1_in_rule__Op_decl__Group_4_1__1__Impl10845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__0__Impl_in_rule__Op_decl__Group_6__010879 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__1_in_rule__Op_decl__Group_6__010882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_52_in_rule__Op_decl__Group_6__0__Impl10910 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__1__Impl_in_rule__Op_decl__Group_6__110941 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__2_in_rule__Op_decl__Group_6__110944 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Op_decl__Group_6__1__Impl10972 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__2__Impl_in_rule__Op_decl__Group_6__211003 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__3_in_rule__Op_decl__Group_6__211006 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__CanRaiseAssignment_6_2_in_rule__Op_decl__Group_6__2__Impl11033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__3__Impl_in_rule__Op_decl__Group_6__311063 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__4_in_rule__Op_decl__Group_6__311066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__0_in_rule__Op_decl__Group_6__3__Impl11093 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__4__Impl_in_rule__Op_decl__Group_6__411124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Op_decl__Group_6__4__Impl11152 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__0__Impl_in_rule__Op_decl__Group_6_3__011193 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__1_in_rule__Op_decl__Group_6_3__011196 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Op_decl__Group_6_3__0__Impl11224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__1__Impl_in_rule__Op_decl__Group_6_3__111255 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__CanRaiseAssignment_6_3_1_in_rule__Op_decl__Group_6_3__1__Impl11282 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__0__Impl_in_rule__Op_decl__Group_7__011316 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__1_in_rule__Op_decl__Group_7__011319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_53_in_rule__Op_decl__Group_7__0__Impl11347 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__1__Impl_in_rule__Op_decl__Group_7__111378 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__2_in_rule__Op_decl__Group_7__111381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Op_decl__Group_7__1__Impl11409 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__2__Impl_in_rule__Op_decl__Group_7__211440 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__3_in_rule__Op_decl__Group_7__211443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ContextsAssignment_7_2_in_rule__Op_decl__Group_7__2__Impl11470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__3__Impl_in_rule__Op_decl__Group_7__311500 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__4_in_rule__Op_decl__Group_7__311503 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__0_in_rule__Op_decl__Group_7__3__Impl11530 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__4__Impl_in_rule__Op_decl__Group_7__411561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Op_decl__Group_7__4__Impl11589 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__0__Impl_in_rule__Op_decl__Group_7_3__011630 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__1_in_rule__Op_decl__Group_7_3__011633 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Op_decl__Group_7_3__0__Impl11661 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__1__Impl_in_rule__Op_decl__Group_7_3__111692 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ContextsAssignment_7_3_1_in_rule__Op_decl__Group_7_3__1__Impl11719 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__0__Impl_in_rule__Op_type_spec__Group_1__011753 = new BitSet(new long[]{0x000000001FFF0000L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__1_in_rule__Op_type_spec__Group_1__011756 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__1__Impl_in_rule__Op_type_spec__Group_1__111814 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__KindAssignment_1_1_in_rule__Op_type_spec__Group_1__1__Impl11841 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__0__Impl_in_rule__Param_decl__Group__011875 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__1_in_rule__Param_decl__Group__011878 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__DirectionAssignment_0_in_rule__Param_decl__Group__0__Impl11905 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__1__Impl_in_rule__Param_decl__Group__111935 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__2_in_rule__Param_decl__Group__111938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Alternatives_1_in_rule__Param_decl__Group__1__Impl11965 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__2__Impl_in_rule__Param_decl__Group__211995 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__IdentifierAssignment_2_in_rule__Param_decl__Group__2__Impl12022 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__0__Impl_in_rule__Readonly_attr_spec__Group_0__012058 = new BitSet(new long[]{0x0040000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__1_in_rule__Readonly_attr_spec__Group_0__012061 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_0_0_in_rule__Readonly_attr_spec__Group_0__0__Impl12088 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__1__Impl_in_rule__Readonly_attr_spec__Group_0__112118 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__2_in_rule__Readonly_attr_spec__Group_0__112121 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Readonly_attr_spec__Group_0__1__Impl12149 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__2__Impl_in_rule__Readonly_attr_spec__Group_0__212180 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__3_in_rule__Readonly_attr_spec__Group_0__212183 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Alternatives_0_2_in_rule__Readonly_attr_spec__Group_0__2__Impl12210 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__3__Impl_in_rule__Readonly_attr_spec__Group_0__312240 = new BitSet(new long[]{0x0010000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__4_in_rule__Readonly_attr_spec__Group_0__312243 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_0_3_in_rule__Readonly_attr_spec__Group_0__3__Impl12270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__4__Impl_in_rule__Readonly_attr_spec__Group_0__412300 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__5_in_rule__Readonly_attr_spec__Group_0__412303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_52_in_rule__Readonly_attr_spec__Group_0__4__Impl12331 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__5__Impl_in_rule__Readonly_attr_spec__Group_0__512362 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__6_in_rule__Readonly_attr_spec__Group_0__512365 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Readonly_attr_spec__Group_0__5__Impl12393 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__6__Impl_in_rule__Readonly_attr_spec__Group_0__612424 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__7_in_rule__Readonly_attr_spec__Group_0__612427 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_6_in_rule__Readonly_attr_spec__Group_0__6__Impl12454 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__7__Impl_in_rule__Readonly_attr_spec__Group_0__712484 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__8_in_rule__Readonly_attr_spec__Group_0__712487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__0_in_rule__Readonly_attr_spec__Group_0__7__Impl12514 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__8__Impl_in_rule__Readonly_attr_spec__Group_0__812545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Readonly_attr_spec__Group_0__8__Impl12573 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__0__Impl_in_rule__Readonly_attr_spec__Group_0_7__012622 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__1_in_rule__Readonly_attr_spec__Group_0_7__012625 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Readonly_attr_spec__Group_0_7__0__Impl12653 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__1__Impl_in_rule__Readonly_attr_spec__Group_0_7__112684 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1_in_rule__Readonly_attr_spec__Group_0_7__1__Impl12711 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__0__Impl_in_rule__Readonly_attr_spec__Group_1__012745 = new BitSet(new long[]{0x0040000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__1_in_rule__Readonly_attr_spec__Group_1__012748 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_1_0_in_rule__Readonly_attr_spec__Group_1__0__Impl12775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__1__Impl_in_rule__Readonly_attr_spec__Group_1__112805 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__2_in_rule__Readonly_attr_spec__Group_1__112808 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Readonly_attr_spec__Group_1__1__Impl12836 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__2__Impl_in_rule__Readonly_attr_spec__Group_1__212867 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__3_in_rule__Readonly_attr_spec__Group_1__212870 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Alternatives_1_2_in_rule__Readonly_attr_spec__Group_1__2__Impl12897 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__3__Impl_in_rule__Readonly_attr_spec__Group_1__312927 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_1_3_in_rule__Readonly_attr_spec__Group_1__3__Impl12954 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__0__Impl_in_rule__Attr_spec__Group_0__012992 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__1_in_rule__Attr_spec__Group_0__012995 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Attr_spec__Group_0__0__Impl13023 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__1__Impl_in_rule__Attr_spec__Group_0__113054 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__2_in_rule__Attr_spec__Group_0__113057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_0_1_in_rule__Attr_spec__Group_0__1__Impl13084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__2__Impl_in_rule__Attr_spec__Group_0__213114 = new BitSet(new long[]{0x0180000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__3_in_rule__Attr_spec__Group_0__213117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__IdentifierAssignment_0_2_in_rule__Attr_spec__Group_0__2__Impl13144 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__3__Impl_in_rule__Attr_spec__Group_0__313174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_0_3_in_rule__Attr_spec__Group_0__3__Impl13201 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__0__Impl_in_rule__Attr_spec__Group_0_3_0__013239 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__1_in_rule__Attr_spec__Group_0_3_0__013242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_55_in_rule__Attr_spec__Group_0_3_0__0__Impl13270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__1__Impl_in_rule__Attr_spec__Group_0_3_0__113301 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__2_in_rule__Attr_spec__Group_0_3_0__113304 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Attr_spec__Group_0_3_0__1__Impl13332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__2__Impl_in_rule__Attr_spec__Group_0_3_0__213363 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__3_in_rule__Attr_spec__Group_0_3_0__213366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_2_in_rule__Attr_spec__Group_0_3_0__2__Impl13393 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__3__Impl_in_rule__Attr_spec__Group_0_3_0__313423 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__4_in_rule__Attr_spec__Group_0_3_0__313426 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__0_in_rule__Attr_spec__Group_0_3_0__3__Impl13453 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__4__Impl_in_rule__Attr_spec__Group_0_3_0__413484 = new BitSet(new long[]{0x0100000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__5_in_rule__Attr_spec__Group_0_3_0__413487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Attr_spec__Group_0_3_0__4__Impl13515 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__5__Impl_in_rule__Attr_spec__Group_0_3_0__513546 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__0_in_rule__Attr_spec__Group_0_3_0__5__Impl13573 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_3__013616 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__1_in_rule__Attr_spec__Group_0_3_0_3__013619 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_3__0__Impl13647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_3__113678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1_in_rule__Attr_spec__Group_0_3_0_3__1__Impl13705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__0__Impl_in_rule__Attr_spec__Group_0_3_0_5__013739 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__1_in_rule__Attr_spec__Group_0_3_0_5__013742 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_56_in_rule__Attr_spec__Group_0_3_0_5__0__Impl13770 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__1__Impl_in_rule__Attr_spec__Group_0_3_0_5__113801 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__2_in_rule__Attr_spec__Group_0_3_0_5__113804 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Attr_spec__Group_0_3_0_5__1__Impl13832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__2__Impl_in_rule__Attr_spec__Group_0_3_0_5__213863 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__3_in_rule__Attr_spec__Group_0_3_0_5__213866 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2_in_rule__Attr_spec__Group_0_3_0_5__2__Impl13893 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__3__Impl_in_rule__Attr_spec__Group_0_3_0_5__313923 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__4_in_rule__Attr_spec__Group_0_3_0_5__313926 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0_in_rule__Attr_spec__Group_0_3_0_5__3__Impl13953 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__4__Impl_in_rule__Attr_spec__Group_0_3_0_5__413984 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Attr_spec__Group_0_3_0_5__4__Impl14012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__014053 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1_in_rule__Attr_spec__Group_0_3_0_5_3__014056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_5_3__0__Impl14084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__114115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1_in_rule__Attr_spec__Group_0_3_0_5_3__1__Impl14142 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__0__Impl_in_rule__Attr_spec__Group_0_3_1__014176 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__1_in_rule__Attr_spec__Group_0_3_1__014179 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_56_in_rule__Attr_spec__Group_0_3_1__0__Impl14207 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__1__Impl_in_rule__Attr_spec__Group_0_3_1__114238 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__2_in_rule__Attr_spec__Group_0_3_1__114241 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Attr_spec__Group_0_3_1__1__Impl14269 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__2__Impl_in_rule__Attr_spec__Group_0_3_1__214300 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__3_in_rule__Attr_spec__Group_0_3_1__214303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_2_in_rule__Attr_spec__Group_0_3_1__2__Impl14330 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__3__Impl_in_rule__Attr_spec__Group_0_3_1__314360 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__4_in_rule__Attr_spec__Group_0_3_1__314363 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__0_in_rule__Attr_spec__Group_0_3_1__3__Impl14390 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__4__Impl_in_rule__Attr_spec__Group_0_3_1__414421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Attr_spec__Group_0_3_1__4__Impl14449 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__0__Impl_in_rule__Attr_spec__Group_0_3_1_3__014490 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__1_in_rule__Attr_spec__Group_0_3_1_3__014493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Attr_spec__Group_0_3_1_3__0__Impl14521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__1__Impl_in_rule__Attr_spec__Group_0_3_1_3__114552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1_in_rule__Attr_spec__Group_0_3_1_3__1__Impl14579 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__0__Impl_in_rule__Attr_spec__Group_1__014613 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__1_in_rule__Attr_spec__Group_1__014616 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Attr_spec__Group_1__0__Impl14644 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__1__Impl_in_rule__Attr_spec__Group_1__114675 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__2_in_rule__Attr_spec__Group_1__114678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_1_1_in_rule__Attr_spec__Group_1__1__Impl14705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__2__Impl_in_rule__Attr_spec__Group_1__214735 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__IdentifierAssignment_1_2_in_rule__Attr_spec__Group_1__2__Impl14762 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__0__Impl_in_rule__Except_decl__Group__014798 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__1_in_rule__Except_decl__Group__014801 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_57_in_rule__Except_decl__Group__0__Impl14829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__1__Impl_in_rule__Except_decl__Group__114860 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__2_in_rule__Except_decl__Group__114863 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__IdentifierAssignment_1_in_rule__Except_decl__Group__1__Impl14890 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__2__Impl_in_rule__Except_decl__Group__214920 = new BitSet(new long[]{0x400040000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__3_in_rule__Except_decl__Group__214923 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Except_decl__Group__2__Impl14951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__3__Impl_in_rule__Except_decl__Group__314982 = new BitSet(new long[]{0x400040000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__4_in_rule__Except_decl__Group__314985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__MembersAssignment_3_in_rule__Except_decl__Group__3__Impl15012 = new BitSet(new long[]{0x400000000FFF0802L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__4__Impl_in_rule__Except_decl__Group__415043 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Except_decl__Group__4__Impl15071 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__0__Impl_in_rule__Type_decl__Group_4__015112 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__1_in_rule__Type_decl__Group_4__015115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_58_in_rule__Type_decl__Group_4__0__Impl15143 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__1__Impl_in_rule__Type_decl__Group_4__115174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Type_decl__Group_4__1__Impl15201 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__0__Impl_in_rule__Alias_type__Group_0__015234 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__1_in_rule__Alias_type__Group_0__015237 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_59_in_rule__Alias_type__Group_0__0__Impl15265 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__1__Impl_in_rule__Alias_type__Group_0__115296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__ContainedTypeAssignment_0_1_in_rule__Alias_type__Group_0__1__Impl15323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__0__Impl_in_rule__Alias_type__Group_1__015357 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__1_in_rule__Alias_type__Group_1__015360 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_59_in_rule__Alias_type__Group_1__0__Impl15388 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__1__Impl_in_rule__Alias_type__Group_1__115419 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__2_in_rule__Alias_type__Group_1__115422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Alternatives_1_1_in_rule__Alias_type__Group_1__1__Impl15449 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__2__Impl_in_rule__Alias_type__Group_1__215479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__IdentifierAssignment_1_2_in_rule__Alias_type__Group_1__2__Impl15506 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__0__Impl_in_rule__Array_type_spec__Group__015542 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__1_in_rule__Array_type_spec__Group__015545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Alternatives_0_in_rule__Array_type_spec__Group__0__Impl15572 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__1__Impl_in_rule__Array_type_spec__Group__115602 = new BitSet(new long[]{0x1000000000000000L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__2_in_rule__Array_type_spec__Group__115605 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__NameAssignment_1_in_rule__Array_type_spec__Group__1__Impl15632 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__2__Impl_in_rule__Array_type_spec__Group__215662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15691 = new BitSet(new long[]{0x1000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15703 = new BitSet(new long[]{0x1000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__0__Impl_in_rule__Array_type_spec__Group_2__015742 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__1_in_rule__Array_type_spec__Group_2__015745 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_60_in_rule__Array_type_spec__Group_2__0__Impl15773 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__1__Impl_in_rule__Array_type_spec__Group_2__115804 = new BitSet(new long[]{0x2000000000000000L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__2_in_rule__Array_type_spec__Group_2__115807 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__BoundsAssignment_2_1_in_rule__Array_type_spec__Group_2__1__Impl15834 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__2__Impl_in_rule__Array_type_spec__Group_2__215864 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_61_in_rule__Array_type_spec__Group_2__2__Impl15892 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__0__Impl_in_rule__Struct_type__Group__015929 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__1_in_rule__Struct_type__Group__015932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_62_in_rule__Struct_type__Group__0__Impl15960 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__1__Impl_in_rule__Struct_type__Group__115991 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__2_in_rule__Struct_type__Group__115994 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__IdentifierAssignment_1_in_rule__Struct_type__Group__1__Impl16021 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__2__Impl_in_rule__Struct_type__Group__216051 = new BitSet(new long[]{0x400000000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__3_in_rule__Struct_type__Group__216054 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Struct_type__Group__2__Impl16082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__3__Impl_in_rule__Struct_type__Group__316113 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__4_in_rule__Struct_type__Group__316116 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16145 = new BitSet(new long[]{0x400000000FFF0802L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16157 = new BitSet(new long[]{0x400000000FFF0802L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__4__Impl_in_rule__Struct_type__Group__416190 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Struct_type__Group__4__Impl16218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__0__Impl_in_rule__Member__Group_0__016259 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_0__1_in_rule__Member__Group_0__016262 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__ContainedTypeAssignment_0_0_in_rule__Member__Group_0__0__Impl16289 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__1__Impl_in_rule__Member__Group_0__116319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_0__1__Impl16347 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__0__Impl_in_rule__Member__Group_1__016382 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Member__Group_1__1_in_rule__Member__Group_1__016385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__ContainedTypeAssignment_1_0_in_rule__Member__Group_1__0__Impl16412 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__1__Impl_in_rule__Member__Group_1__116442 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_1__2_in_rule__Member__Group_1__116445 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__IdentifierAssignment_1_1_in_rule__Member__Group_1__1__Impl16472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__2__Impl_in_rule__Member__Group_1__216502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_1__2__Impl16530 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__0__Impl_in_rule__Member__Group_2__016567 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Member__Group_2__1_in_rule__Member__Group_2__016570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__ContainedTypeAssignment_2_0_in_rule__Member__Group_2__0__Impl16597 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__1__Impl_in_rule__Member__Group_2__116627 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_2__2_in_rule__Member__Group_2__116630 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__IdentifierAssignment_2_1_in_rule__Member__Group_2__1__Impl16657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__2__Impl_in_rule__Member__Group_2__216687 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_2__2__Impl16715 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__0__Impl_in_rule__Member__Group_3__016752 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Member__Group_3__1_in_rule__Member__Group_3__016755 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__SharedTypeAssignment_3_0_in_rule__Member__Group_3__0__Impl16782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__1__Impl_in_rule__Member__Group_3__116812 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_3__2_in_rule__Member__Group_3__116815 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__IdentifierAssignment_3_1_in_rule__Member__Group_3__1__Impl16842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__2__Impl_in_rule__Member__Group_3__216872 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_3__2__Impl16900 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__0__Impl_in_rule__Union_type__Group__016937 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Union_type__Group__1_in_rule__Union_type__Group__016940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_63_in_rule__Union_type__Group__0__Impl16968 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__1__Impl_in_rule__Union_type__Group__116999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
        public static final BitSet FOLLOW_rule__Union_type__Group__2_in_rule__Union_type__Group__117002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__IdentifierAssignment_1_in_rule__Union_type__Group__1__Impl17029 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__2__Impl_in_rule__Union_type__Group__217059 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__3_in_rule__Union_type__Group__217062 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_64_in_rule__Union_type__Group__2__Impl17090 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__3__Impl_in_rule__Union_type__Group__317121 = new BitSet(new long[]{0x00000000011C0800L,0x0000000000000204L});
        public static final BitSet FOLLOW_rule__Union_type__Group__4_in_rule__Union_type__Group__317124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Union_type__Group__3__Impl17152 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__4__Impl_in_rule__Union_type__Group__417183 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__5_in_rule__Union_type__Group__417186 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Alternatives_4_in_rule__Union_type__Group__4__Impl17213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__5__Impl_in_rule__Union_type__Group__517243 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__6_in_rule__Union_type__Group__517246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Union_type__Group__5__Impl17274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__6__Impl_in_rule__Union_type__Group__617305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__7_in_rule__Union_type__Group__617308 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Union_type__Group__6__Impl17336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__7__Impl_in_rule__Union_type__Group__717367 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__8_in_rule__Union_type__Group__717370 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17399 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001002L});
        public static final BitSet FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17411 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__8__Impl_in_rule__Union_type__Group__817444 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Union_type__Group__8__Impl17472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__0__Impl_in_rule__Switch_type_spec_cont__Group_1__017521 = new BitSet(new long[]{0x0000000000100000L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__1_in_rule__Switch_type_spec_cont__Group_1__017524 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__1__Impl_in_rule__Switch_type_spec_cont__Group_1__117582 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__KindAssignment_1_1_in_rule__Switch_type_spec_cont__Group_1__1__Impl17609 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__0__Impl_in_rule__Switch_type_spec_cont__Group_2__017643 = new BitSet(new long[]{0x0000000001000000L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__1_in_rule__Switch_type_spec_cont__Group_2__017646 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__1__Impl_in_rule__Switch_type_spec_cont__Group_2__117704 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__KindAssignment_2_1_in_rule__Switch_type_spec_cont__Group_2__1__Impl17731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__0__Impl_in_rule__Case_stmt__Group_0__017765 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__1_in_rule__Case_stmt__Group_0__017768 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17797 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17809 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__1__Impl_in_rule__Case_stmt__Group_0__117842 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__2_in_rule__Case_stmt__Group_0__117845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__ContainedTypeAssignment_0_1_in_rule__Case_stmt__Group_0__1__Impl17872 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__2__Impl_in_rule__Case_stmt__Group_0__217902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Case_stmt__Group_0__2__Impl17930 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__0__Impl_in_rule__Case_stmt__Group_0_0_0__017967 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__1_in_rule__Case_stmt__Group_0_0_0__017970 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_65_in_rule__Case_stmt__Group_0_0_0__0__Impl17998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__1__Impl_in_rule__Case_stmt__Group_0_0_0__118029 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__2_in_rule__Case_stmt__Group_0_0_0__118032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__LabelAssignment_0_0_0_1_in_rule__Case_stmt__Group_0_0_0__1__Impl18059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__2__Impl_in_rule__Case_stmt__Group_0_0_0__218089 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_0_0_0__2__Impl18117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__0__Impl_in_rule__Case_stmt__Group_0_0_1__018154 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__1_in_rule__Case_stmt__Group_0_0_1__018157 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__IsDefaultAssignment_0_0_1_0_in_rule__Case_stmt__Group_0_0_1__0__Impl18184 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__1__Impl_in_rule__Case_stmt__Group_0_0_1__118214 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_0_0_1__1__Impl18242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__0__Impl_in_rule__Case_stmt__Group_1__018277 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__1_in_rule__Case_stmt__Group_1__018280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18309 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18321 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__1__Impl_in_rule__Case_stmt__Group_1__118354 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__2_in_rule__Case_stmt__Group_1__118357 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_1_1_in_rule__Case_stmt__Group_1__1__Impl18384 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__2__Impl_in_rule__Case_stmt__Group_1__218414 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__3_in_rule__Case_stmt__Group_1__218417 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__IdentifierAssignment_1_2_in_rule__Case_stmt__Group_1__2__Impl18444 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__3__Impl_in_rule__Case_stmt__Group_1__318474 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Case_stmt__Group_1__3__Impl18502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__0__Impl_in_rule__Case_stmt__Group_1_0_0__018541 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__1_in_rule__Case_stmt__Group_1_0_0__018544 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_65_in_rule__Case_stmt__Group_1_0_0__0__Impl18572 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__1__Impl_in_rule__Case_stmt__Group_1_0_0__118603 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__2_in_rule__Case_stmt__Group_1_0_0__118606 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__LabelAssignment_1_0_0_1_in_rule__Case_stmt__Group_1_0_0__1__Impl18633 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__2__Impl_in_rule__Case_stmt__Group_1_0_0__218663 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_1_0_0__2__Impl18691 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__0__Impl_in_rule__Case_stmt__Group_1_0_1__018728 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__1_in_rule__Case_stmt__Group_1_0_1__018731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__IsDefaultAssignment_1_0_1_0_in_rule__Case_stmt__Group_1_0_1__0__Impl18758 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__1__Impl_in_rule__Case_stmt__Group_1_0_1__118788 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_1_0_1__1__Impl18816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__0__Impl_in_rule__Enum_type__Group__018851 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__1_in_rule__Enum_type__Group__018854 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_66_in_rule__Enum_type__Group__0__Impl18882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__1__Impl_in_rule__Enum_type__Group__118913 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__2_in_rule__Enum_type__Group__118916 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__IdentifierAssignment_1_in_rule__Enum_type__Group__1__Impl18943 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__2__Impl_in_rule__Enum_type__Group__218973 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__3_in_rule__Enum_type__Group__218976 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Enum_type__Group__2__Impl19004 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__3__Impl_in_rule__Enum_type__Group__319035 = new BitSet(new long[]{0x0002400000000000L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__4_in_rule__Enum_type__Group__319038 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__MembersAssignment_3_in_rule__Enum_type__Group__3__Impl19065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__4__Impl_in_rule__Enum_type__Group__419095 = new BitSet(new long[]{0x0002400000000000L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__5_in_rule__Enum_type__Group__419098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__0_in_rule__Enum_type__Group__4__Impl19125 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__5__Impl_in_rule__Enum_type__Group__519156 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Enum_type__Group__5__Impl19184 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__0__Impl_in_rule__Enum_type__Group_4__019227 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__1_in_rule__Enum_type__Group_4__019230 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Enum_type__Group_4__0__Impl19258 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__1__Impl_in_rule__Enum_type__Group_4__119289 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__MembersAssignment_4_1_in_rule__Enum_type__Group_4__1__Impl19316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__0__Impl_in_rule__Constr_forward_decl__Group_0__019350 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__1_in_rule__Constr_forward_decl__Group_0__019353 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_62_in_rule__Constr_forward_decl__Group_0__0__Impl19381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__1__Impl_in_rule__Constr_forward_decl__Group_0__119412 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_0__1__Impl19439 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__0__Impl_in_rule__Constr_forward_decl__Group_1__019472 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__1_in_rule__Constr_forward_decl__Group_1__019475 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_63_in_rule__Constr_forward_decl__Group_1__0__Impl19503 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__1__Impl_in_rule__Constr_forward_decl__Group_1__119534 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_1__1__Impl19561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__0__Impl_in_rule__Const_decl__Group__019594 = new BitSet(new long[]{0x0000000007FF0800L,0x0000000000000300L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__1_in_rule__Const_decl__Group__019597 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_67_in_rule__Const_decl__Group__0__Impl19625 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__1__Impl_in_rule__Const_decl__Group__119656 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__2_in_rule__Const_decl__Group__119659 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Alternatives_1_in_rule__Const_decl__Group__1__Impl19686 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__2__Impl_in_rule__Const_decl__Group__219716 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__3_in_rule__Const_decl__Group__219719 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__IdentifierAssignment_2_in_rule__Const_decl__Group__2__Impl19746 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__3__Impl_in_rule__Const_decl__Group__319776 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__4_in_rule__Const_decl__Group__319779 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_68_in_rule__Const_decl__Group__3__Impl19807 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__4__Impl_in_rule__Const_decl__Group__419838 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__ConstValueAssignment_4_in_rule__Const_decl__Group__4__Impl19865 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__0__Impl_in_rule__Sequence_type__Group__019905 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__1_in_rule__Sequence_type__Group__019908 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_69_in_rule__Sequence_type__Group__0__Impl19936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__1__Impl_in_rule__Sequence_type__Group__119967 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000320L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__2_in_rule__Sequence_type__Group__119970 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_70_in_rule__Sequence_type__Group__1__Impl19998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__2__Impl_in_rule__Sequence_type__Group__220029 = new BitSet(new long[]{0x0002000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__3_in_rule__Sequence_type__Group__220032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Alternatives_2_in_rule__Sequence_type__Group__2__Impl20059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__3__Impl_in_rule__Sequence_type__Group__320089 = new BitSet(new long[]{0x0002000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__4_in_rule__Sequence_type__Group__320092 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__0_in_rule__Sequence_type__Group__3__Impl20119 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__4__Impl_in_rule__Sequence_type__Group__420150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Sequence_type__Group__4__Impl20178 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__0__Impl_in_rule__Sequence_type__Group_3__020219 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__1_in_rule__Sequence_type__Group_3__020222 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Sequence_type__Group_3__0__Impl20250 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__1__Impl_in_rule__Sequence_type__Group_3__120281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__BoundAssignment_3_1_in_rule__Sequence_type__Group_3__1__Impl20308 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__0__Impl_in_rule__Stringdef_type__Group__020342 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__1_in_rule__Stringdef_type__Group__020345 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_22_in_rule__Stringdef_type__Group__0__Impl20373 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__1__Impl_in_rule__Stringdef_type__Group__120404 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__2_in_rule__Stringdef_type__Group__120407 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_70_in_rule__Stringdef_type__Group__1__Impl20435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__2__Impl_in_rule__Stringdef_type__Group__220466 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__3_in_rule__Stringdef_type__Group__220469 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__BoundAssignment_2_in_rule__Stringdef_type__Group__2__Impl20496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__3__Impl_in_rule__Stringdef_type__Group__320526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Stringdef_type__Group__3__Impl20554 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__0__Impl_in_rule__Wide_stringdef_type__Group__020593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__1_in_rule__Wide_stringdef_type__Group__020596 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_23_in_rule__Wide_stringdef_type__Group__0__Impl20624 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__1__Impl_in_rule__Wide_stringdef_type__Group__120655 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__2_in_rule__Wide_stringdef_type__Group__120658 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_70_in_rule__Wide_stringdef_type__Group__1__Impl20686 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__2__Impl_in_rule__Wide_stringdef_type__Group__220717 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__3_in_rule__Wide_stringdef_type__Group__220720 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__BoundAssignment_2_in_rule__Wide_stringdef_type__Group__2__Impl20747 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__3__Impl_in_rule__Wide_stringdef_type__Group__320777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Wide_stringdef_type__Group__3__Impl20805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__0__Impl_in_rule__Fixed_pt_type__Group__020844 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__1_in_rule__Fixed_pt_type__Group__020847 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__Fixed_pt_type__Group__0__Impl20875 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__1__Impl_in_rule__Fixed_pt_type__Group__120906 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__2_in_rule__Fixed_pt_type__Group__120909 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_70_in_rule__Fixed_pt_type__Group__1__Impl20937 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__2__Impl_in_rule__Fixed_pt_type__Group__220968 = new BitSet(new long[]{0x0002000000000000L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__3_in_rule__Fixed_pt_type__Group__220971 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__DigitsAssignment_2_in_rule__Fixed_pt_type__Group__2__Impl20998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__3__Impl_in_rule__Fixed_pt_type__Group__321028 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__4_in_rule__Fixed_pt_type__Group__321031 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Fixed_pt_type__Group__3__Impl21059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__4__Impl_in_rule__Fixed_pt_type__Group__421090 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__5_in_rule__Fixed_pt_type__Group__421093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__ScaleAssignment_4_in_rule__Fixed_pt_type__Group__4__Impl21120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__5__Impl_in_rule__Fixed_pt_type__Group__521150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Fixed_pt_type__Group__5__Impl21178 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__0__Impl_in_rule__Longdouble_type__Group__021221 = new BitSet(new long[]{0x0000000000020000L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__1_in_rule__Longdouble_type__Group__021224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Longdouble_type__Group__0__Impl21252 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__1__Impl_in_rule__Longdouble_type__Group__121283 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_17_in_rule__Longdouble_type__Group__1__Impl21311 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__0__Impl_in_rule__Longlong_type__Group__021346 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__1_in_rule__Longlong_type__Group__021349 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Longlong_type__Group__0__Impl21377 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__1__Impl_in_rule__Longlong_type__Group__121408 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Longlong_type__Group__1__Impl21436 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__0__Impl_in_rule__Ushort_type__Group__021471 = new BitSet(new long[]{0x0000000000040000L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__1_in_rule__Ushort_type__Group__021474 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_73_in_rule__Ushort_type__Group__0__Impl21502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__1__Impl_in_rule__Ushort_type__Group__121533 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_18_in_rule__Ushort_type__Group__1__Impl21561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__0__Impl_in_rule__Ulong_type__Group__021596 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__1_in_rule__Ulong_type__Group__021599 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_73_in_rule__Ulong_type__Group__0__Impl21627 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__1__Impl_in_rule__Ulong_type__Group__121658 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Ulong_type__Group__1__Impl21686 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__0__Impl_in_rule__Ulonglong_type__Group__021721 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__1_in_rule__Ulonglong_type__Group__021724 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_73_in_rule__Ulonglong_type__Group__0__Impl21752 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__1__Impl_in_rule__Ulonglong_type__Group__121783 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__2_in_rule__Ulonglong_type__Group__121786 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Ulonglong_type__Group__1__Impl21814 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__2__Impl_in_rule__Ulonglong_type__Group__221845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Ulonglong_type__Group__2__Impl21873 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__0__Impl_in_rule__Fixed_pt_const_type__Group__021910 = new BitSet(new long[]{0x0000000007FF0000L,0x0000000000000300L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__1_in_rule__Fixed_pt_const_type__Group__021913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__1__Impl_in_rule__Fixed_pt_const_type__Group__121971 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__Fixed_pt_const_type__Group__1__Impl21999 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__0__Impl_in_rule__Or_expr__Group__022034 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__1_in_rule__Or_expr__Group__022037 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulexor_expr_in_rule__Or_expr__Group__0__Impl22064 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__1__Impl_in_rule__Or_expr__Group__122093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__0_in_rule__Or_expr__Group__1__Impl22120 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__0__Impl_in_rule__Or_expr__Group_1__022155 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__1_in_rule__Or_expr__Group_1__022158 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__1__Impl_in_rule__Or_expr__Group_1__122216 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__2_in_rule__Or_expr__Group_1__122219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__OperatorAssignment_1_1_in_rule__Or_expr__Group_1__1__Impl22246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__2__Impl_in_rule__Or_expr__Group_1__222276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__RightAssignment_1_2_in_rule__Or_expr__Group_1__2__Impl22303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__0__Impl_in_rule__Xor_expr__Group__022339 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__1_in_rule__Xor_expr__Group__022342 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleand_expr_in_rule__Xor_expr__Group__0__Impl22369 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__1__Impl_in_rule__Xor_expr__Group__122398 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__0_in_rule__Xor_expr__Group__1__Impl22425 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__0__Impl_in_rule__Xor_expr__Group_1__022460 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__1_in_rule__Xor_expr__Group_1__022463 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__1__Impl_in_rule__Xor_expr__Group_1__122521 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__2_in_rule__Xor_expr__Group_1__122524 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__OperatorAssignment_1_1_in_rule__Xor_expr__Group_1__1__Impl22551 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__2__Impl_in_rule__Xor_expr__Group_1__222581 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__RightAssignment_1_2_in_rule__Xor_expr__Group_1__2__Impl22608 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group__0__Impl_in_rule__And_expr__Group__022644 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__And_expr__Group__1_in_rule__And_expr__Group__022647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshift_expr_in_rule__And_expr__Group__0__Impl22674 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group__1__Impl_in_rule__And_expr__Group__122703 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__0_in_rule__And_expr__Group__1__Impl22730 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__0__Impl_in_rule__And_expr__Group_1__022765 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__1_in_rule__And_expr__Group_1__022768 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__1__Impl_in_rule__And_expr__Group_1__122826 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__2_in_rule__And_expr__Group_1__122829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__OperatorAssignment_1_1_in_rule__And_expr__Group_1__1__Impl22856 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__2__Impl_in_rule__And_expr__Group_1__222886 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__RightAssignment_1_2_in_rule__And_expr__Group_1__2__Impl22913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__0__Impl_in_rule__Shift_expr__Group__022949 = new BitSet(new long[]{0x0000000300000000L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__1_in_rule__Shift_expr__Group__022952 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleadd_expr_in_rule__Shift_expr__Group__0__Impl22979 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__1__Impl_in_rule__Shift_expr__Group__123008 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__0_in_rule__Shift_expr__Group__1__Impl23035 = new BitSet(new long[]{0x0000000300000002L});
    }

    private static class FollowSets001 {
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__0__Impl_in_rule__Shift_expr__Group_1__023070 = new BitSet(new long[]{0x0000000300000000L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__1_in_rule__Shift_expr__Group_1__023073 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__1__Impl_in_rule__Shift_expr__Group_1__123131 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__2_in_rule__Shift_expr__Group_1__123134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__OperatorAssignment_1_1_in_rule__Shift_expr__Group_1__1__Impl23161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__2__Impl_in_rule__Shift_expr__Group_1__223191 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__RightAssignment_1_2_in_rule__Shift_expr__Group_1__2__Impl23218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__0__Impl_in_rule__Add_expr__Group__023254 = new BitSet(new long[]{0x0000000C00000000L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__1_in_rule__Add_expr__Group__023257 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemult_expr_in_rule__Add_expr__Group__0__Impl23284 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__1__Impl_in_rule__Add_expr__Group__123313 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__0_in_rule__Add_expr__Group__1__Impl23340 = new BitSet(new long[]{0x0000000C00000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__0__Impl_in_rule__Add_expr__Group_1__023375 = new BitSet(new long[]{0x0000000C00000000L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__1_in_rule__Add_expr__Group_1__023378 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__1__Impl_in_rule__Add_expr__Group_1__123436 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__2_in_rule__Add_expr__Group_1__123439 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__OperatorAssignment_1_1_in_rule__Add_expr__Group_1__1__Impl23466 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__2__Impl_in_rule__Add_expr__Group_1__223496 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__RightAssignment_1_2_in_rule__Add_expr__Group_1__2__Impl23523 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__0__Impl_in_rule__Mult_expr__Group__023559 = new BitSet(new long[]{0x0000007000000000L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__1_in_rule__Mult_expr__Group__023562 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_expr_in_rule__Mult_expr__Group__0__Impl23589 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__1__Impl_in_rule__Mult_expr__Group__123618 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__0_in_rule__Mult_expr__Group__1__Impl23645 = new BitSet(new long[]{0x0000007000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__0__Impl_in_rule__Mult_expr__Group_1__023680 = new BitSet(new long[]{0x0000007000000000L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__1_in_rule__Mult_expr__Group_1__023683 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__1__Impl_in_rule__Mult_expr__Group_1__123741 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__2_in_rule__Mult_expr__Group_1__123744 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__OperatorAssignment_1_1_in_rule__Mult_expr__Group_1__1__Impl23771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__2__Impl_in_rule__Mult_expr__Group_1__223801 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__RightAssignment_1_2_in_rule__Mult_expr__Group_1__2__Impl23828 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__0__Impl_in_rule__Unary_expr__Group_0__023864 = new BitSet(new long[]{0x0000008C00000000L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__1_in_rule__Unary_expr__Group_0__023867 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__1__Impl_in_rule__Unary_expr__Group_0__123925 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__2_in_rule__Unary_expr__Group_0__123928 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__OperatorAssignment_0_1_in_rule__Unary_expr__Group_0__1__Impl23955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__2__Impl_in_rule__Unary_expr__Group_0__223985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__ExpressionAssignment_0_2_in_rule__Unary_expr__Group_0__2__Impl24012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__0__Impl_in_rule__Primary_expr__Group_2__024048 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__1_in_rule__Primary_expr__Group_2__024051 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Primary_expr__Group_2__0__Impl24079 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__1__Impl_in_rule__Primary_expr__Group_2__124110 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__2_in_rule__Primary_expr__Group_2__124113 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Primary_expr__Group_2__1__Impl24140 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__2__Impl_in_rule__Primary_expr__Group_2__224169 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Primary_expr__Group_2__2__Impl24197 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinclude_decl_in_rule__Specification__IncludesAssignment_124239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledefinition_in_rule__Specification__ContainsAssignment_224270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Include_decl__ImportURIAssignment_124301 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Module__IdentifierAssignment_124332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledefinition_in_rule__Module__ContainsAssignment_3_024363 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_30_in_rule__Interface_decl__IsAbstractAssignment_0_024399 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__Interface_decl__IsCustomAssignment_0_124443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_decl__IdentifierAssignment_224482 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_124517 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_2_124556 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexport_in_rule__Interface_decl__ContainsAssignment_5_024591 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_fwd__IdentifierAssignment_224622 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_74_in_rule__Op_decl__IsOnewayAssignment_024658 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_type_spec_in_rule__Op_decl__ContainedTypeAssignment_1_024697 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__SharedTypeAssignment_1_124732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__IdentifierAssignment_224767 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_024798 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_1_124829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_224864 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_3_124903 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_224938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_3_124969 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulevoid_type_in_rule__Op_type_spec__KindAssignment_1_125000 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_attribute_in_rule__Param_decl__DirectionAssignment_025031 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Param_decl__ContainedTypeAssignment_1_025062 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Param_decl__SharedTypeAssignment_1_125097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Param_decl__IdentifierAssignment_225132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_75_in_rule__Readonly_attr_spec__IsReadonlyAssignment_0_025168 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_025207 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_125242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_0_325277 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_625312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_125351 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_75_in_rule__Readonly_attr_spec__IsReadonlyAssignment_1_025391 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_025430 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_125465 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_1_325500 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_0_1_025531 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_0_1_125566 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_0_225601 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_225636 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_125675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_225714 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_125753 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_225792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_125831 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_1_1_025866 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_1_1_125901 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_1_225936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Except_decl__IdentifierAssignment_125967 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemember_in_rule__Except_decl__MembersAssignment_325998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_rule__Alias_type__ContainedTypeAssignment_0_126029 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Alias_type__ContainedTypeAssignment_1_1_026060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Alias_type__SharedTypeAssignment_1_1_126095 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Alias_type__IdentifierAssignment_1_226130 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Array_type_spec__ContainedTypeAssignment_0_026161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Array_type_spec__SharedTypeAssignment_0_126196 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Array_type_spec__NameAssignment_126231 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Array_type_spec__BoundsAssignment_2_126262 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleobject_type_in_rule__Base_type_spec__KindAssignment_126293 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Struct_type__IdentifierAssignment_126324 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemember_in_rule__Struct_type__MembersAssignment_326355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_rule__Member__ContainedTypeAssignment_0_026386 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Member__ContainedTypeAssignment_1_026417 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_1_126448 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestruct_type_in_rule__Member__ContainedTypeAssignment_2_026479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_2_126510 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__SharedTypeAssignment_3_026545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_3_126580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Union_type__IdentifierAssignment_126611 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleswitch_type_spec_cont_in_rule__Union_type__ContainedDiscrimAssignment_4_026642 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Union_type__SharedDiscrimAssignment_4_126677 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecase_stmt_in_rule__Union_type__UnionMembersAssignment_726712 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulechar_type_in_rule__Switch_type_spec_cont__KindAssignment_1_126743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleboolean_type_in_rule__Switch_type_spec_cont__KindAssignment_2_126774 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_0_0_0_126805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_76_in_rule__Case_stmt__IsDefaultAssignment_0_0_1_026841 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_0_126880 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_1_0_0_126911 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_76_in_rule__Case_stmt__IsDefaultAssignment_1_0_1_026947 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_1_1_026986 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Case_stmt__SharedTypeAssignment_1_1_127021 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Case_stmt__IdentifierAssignment_1_227056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Enum_type__IdentifierAssignment_127087 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_327118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_4_127149 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Enum_member__IdentifierAssignment27180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_type_in_rule__Const_decl__ContainedTypeAssignment_1_027211 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Const_decl__SharedTypeAssignment_1_127246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Const_decl__IdentifierAssignment_227281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Const_decl__ConstValueAssignment_427312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Sequence_type__ContainedTypeAssignment_2_027343 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Sequence_type__SharedTypeAssignment_2_127378 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Sequence_type__BoundAssignment_3_127413 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Stringdef_type__BoundAssignment_227444 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Wide_stringdef_type__BoundAssignment_227475 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__DigitsAssignment_227506 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__ScaleAssignment_427537 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefloat_type_in_rule__Floating_pt_type__KindAssignment_027568 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledouble_type_in_rule__Floating_pt_type__KindAssignment_127599 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelongdouble_type_in_rule__Floating_pt_type__KindAssignment_227630 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshort_type_in_rule__Integer_type__KindAssignment_027661 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelong_type_in_rule__Integer_type__KindAssignment_127692 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelonglong_type_in_rule__Integer_type__KindAssignment_227723 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleushort_type_in_rule__Integer_type__KindAssignment_327754 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulong_type_in_rule__Integer_type__KindAssignment_427785 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulonglong_type_in_rule__Integer_type__KindAssignment_527816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulechar_type_in_rule__Charstr_type__KindAssignment_027847 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_char_type_in_rule__Charstr_type__KindAssignment_127878 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestring_type_in_rule__Charstr_type__KindAssignment_227909 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_string_type_in_rule__Charstr_type__KindAssignment_327940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleboolean_type_in_rule__Other_type__KindAssignment_027971 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleoctet_type_in_rule__Other_type__KindAssignment_128002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleany_type_in_rule__Other_type__KindAssignment_228033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_77_in_rule__Or_expr__OperatorAssignment_1_128069 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulexor_expr_in_rule__Or_expr__RightAssignment_1_228108 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_78_in_rule__Xor_expr__OperatorAssignment_1_128144 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleand_expr_in_rule__Xor_expr__RightAssignment_1_228183 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__And_expr__OperatorAssignment_1_128219 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshift_expr_in_rule__And_expr__RightAssignment_1_228258 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__OperatorAlternatives_1_1_0_in_rule__Shift_expr__OperatorAssignment_1_128289 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleadd_expr_in_rule__Shift_expr__RightAssignment_1_228322 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__OperatorAlternatives_1_1_0_in_rule__Add_expr__OperatorAssignment_1_128353 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemult_expr_in_rule__Add_expr__RightAssignment_1_228386 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__OperatorAlternatives_1_1_0_in_rule__Mult_expr__OperatorAssignment_1_128417 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_expr_in_rule__Mult_expr__RightAssignment_1_228450 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_operator_in_rule__Unary_expr__OperatorAssignment_0_128481 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimary_expr_in_rule__Unary_expr__ExpressionAssignment_0_228512 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__ConstantDefRef__ConstantAssignment28547 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleliteral_in_rule__ValueExpression__ValueAssignment28582 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__0_in_synpred30_InternalIDL5216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__0_in_synpred38_InternalIDL5552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__0_in_synpred39_InternalIDL5570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__0_in_synpred45_InternalIDL5775 = new BitSet(new long[]{0x0000000000000002L});
    }


}